Метод url.Values.Add
Метод url.Values.Add добавляет значение в карту параметров запроса. Первым параметром принимает ключ (строку), вторым — значение (строку). Если ключ уже существует, метод добавляет новое значение в существующий список, не удаляя старые. Это отличает его от метода url.Values.Set, который заменяет все значения на одно.
Синтаксис
values.Add(key, value)
Пример
Давайте добавим один параметр в пустую карту:
package main
import (
"fmt"
"net/url"
)
func main() {
v := url.Values{}
v.Add("name", "john")
fmt.Println(v.Encode())
}
Результат выполнения кода:
"name=john"
Пример
Теперь добавим два значения для одного ключа:
package main
import (
"fmt"
"net/url"
)
func main() {
v := url.Values{}
v.Add("colors", "red")
v.Add("colors", "blue")
fmt.Println(v.Encode())
}
Результат выполнения кода:
"colors=red&colors=blue"
Пример
Добавим параметры к уже существующим значениям из готовой карты:
package main
import (
"fmt"
"net/url"
)
func main() {
v := url.Values{}
v.Set("name", "alice")
v.Add("name", "bob")
v.Add("age", "30")
fmt.Println(v.Encode())
}
Результат выполнения кода:
"age=30&name=alice&name=bob"
Пример
Используем метод url.Values.Add вместе с парсингом URL:
package main
import (
"fmt"
"net/url"
)
func main() {
u, err := url.Parse("https://example.com?page=1")
if err != nil {
panic(err)
}
params := u.Query()
params.Add("sort", "asc")
params.Add("page", "2")
u.RawQuery = params.Encode()
fmt.Println(u.String())
}
Результат выполнения кода:
"https://example.com?page=1&page=2&sort=asc"
Смотрите также
-
метод
url.Values.Set,
который устанавливает значение для ключа, заменяя все существующие -
метод
url.Values.Get,
который возвращает первое значение для заданного ключа -
метод
url.Values.Encode,
который кодирует карту параметров в строку запроса -
функцию
url.Parse,
которая разбирает URL-строку на составляющие