Метод url.Values.Set

Метод url.Values.Set устанавливает значение для указанного ключа в параметрах запроса. Первым аргументом передается ключ (название параметра), вторым - значение, которое нужно установить. Если ключ уже существовал, то его предыдущее значение заменяется на новое.

Синтаксис

govalues.Set(key, value string)

Пример

Давайте создадим пустой набор параметров и установим значение для ключа:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  v := url.Values{}
  v.Set("name", "Alice")
  fmt.Println(v.Get("name"))
}

Результат выполнения кода:

go"Alice"

Пример

Если ключ уже существует, Set заменяет предыдущее значение новым:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  v := url.Values{}
  v.Set("age", "25")
  fmt.Println(v.Get("age"))
  v.Set("age", "30")
  fmt.Println(v.Get("age"))
}

Результат выполнения кода:

go"25"
"30"

Пример

Отличие Set от Add: Set заменяет значение, а Add добавляет новое значение в конец слайса значений для ключа:

gopackage main

import (
  "fmt"
  "net/url"
)

func main() {
  v := url.Values{}
  v.Add("colors", "red")
  v.Add("colors", "blue")
  v.Set("colors", "green")
  fmt.Println(v["colors"])
}

Результат выполнения кода:

go[green]

Как видим, вместо двух значений осталось только одно последнее установленное.

Смотрите также

  • метод url.Values.Get,
    который возвращает первое значение для заданного ключа
  • метод url.Values.Add,
    который добавляет значение к ключу без удаления существующих
  • функцию url.Parse,
    которая разбирает URL-строку в структуру URL
  • функцию url.QueryEscape,
    которая экранирует строку для безопасного использования в параметрах запроса