Полагаю, вы используете гориллу мукс. Я проверил исходный код , mux.Vars()
возвращает значение с типом map[string]string
.
В двух словах, тип данных map
может при желании возвращать два значения.
- Первым является фактическое значение согласно запрошенному ключу
- Второй индикатор показывает, существует элемент с запрошенным ключом или нет (логическое значение).
Пожалуйста, посмотрите на пример ниже:
vars := map[string]string{
"one": "1",
"two": "",
}
value1, ok1 := vars["one"]
fmt.Println("value:", value1, "is exists:", ok1)
// value: 1 is exists: true
value2, ok2 := vars["two"]
fmt.Println("value:", value2, "is exists:", ok2)
// value: is exists: true
value3, ok3 := vars["three"]
fmt.Println("value:", value3, "is exists:", ok3)
// value: is exists: false
Из приведенного выше примера ясно видно, что если запрошенный элемент не существует, то второе возвращение будет false
.
Если элемент существует, даже если значение равно нулю, то второе возвращение все равно будет true
, поскольку элемент действительно существует, не обязательно важно, какое значение.