РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1109 of 1593 menu

Тип url.Values

Тип url.Values представляет собой отображение map[string][]string и используется для работы с параметрами запроса и данными форм. Он предоставляет удобные методы для получения, установки и добавления значений. Основное преимущество этого типа - поддержка множественных значений для одного ключа.

Создание url.Values

Давайте создадим экземпляр url.Values с помощью функции url.ParseQuery или напрямую:

package main import ( "fmt" "net/url" ) func main() { params := url.Values{} params.Set("name", "john") params.Add("age", "25") params.Add("hobby", "reading") params.Add("hobby", "swimming") fmt.Println(params) }

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

map[age:[25] hobby:[reading swimming] name:[john]]

Метод Get

Метод Get возвращает первое значение для указанного ключа. Если ключ отсутствует, возвращается пустая строка:

package main import ( "fmt" "net/url" ) func main() { params := url.Values{} params.Set("name", "john") params.Add("hobby", "reading") params.Add("hobby", "swimming") res := params.Get("name") fmt.Println(res) }

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

"john"

Метод Set

Метод Set устанавливает значение для указанного ключа, заменяя все существующие значения. Если ключ отсутствовал, он создается:

package main import ( "fmt" "net/url" ) func main() { params := url.Values{} params.Set("name", "john") params.Set("name", "jane") res := params.Get("name") fmt.Println(res) }

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

"jane"

Метод Add

Метод Add добавляет значение к существующему ключу, сохраняя все предыдущие значения. Если ключ отсутствовал, он создается:

package main import ( "fmt" "net/url" ) func main() { params := url.Values{} params.Add("hobby", "reading") params.Add("hobby", "swimming") params.Add("hobby", "gaming") res := params["hobby"] fmt.Println(res) }

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

[reading swimming gaming]

Метод Encode

Метод Encode преобразует параметры в строку запроса для использования в URL-адресах. Значения кодируются в соответствии с правилами URL:

package main import ( "fmt" "net/url" ) func main() { params := url.Values{} params.Set("name", "john doe") params.Add("age", "25") params.Add("hobby", "reading books") res := params.Encode() fmt.Println(res) }

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

"age=25&hobby=reading+books&name=john+doe"

Метод ParseQuery

Функция ParseQuery парсит строку запроса и возвращает url.Values. Это удобный способ преобразовать URL-строку в структурированные данные:

package main import ( "fmt" "net/url" ) func main() { query := "name=jane&age=30&hobby=music&hobby=travel" params, err := url.ParseQuery(query) if err != nil { fmt.Println(err) return } fmt.Println(params) }

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

map[age:[30] hobby:[music travel] name:[jane]]

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

  • тип url.URL,
    который представляет собой парсированный URL-адрес
  • функцию url.Parse,
    которая парсирует URL-строку в структуру url.URL
  • функцию url.QueryEscape,
    которая кодирует строку для использования в URL-запросах
  • функцию url.QueryUnescape,
    которая декодирует URL-закодированную строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить