И я не могу понять такое объявление переменной:
_, prs := m["example"]
Что именно " _,
" делает и почему они объявили такую переменную вместо
prs := m["example"]
(Я нашел его как часть Go by Example: Maps )
И я не могу понять такое объявление переменной:
_, prs := m["example"]
Что именно " _,
" делает и почему они объявили такую переменную вместо
prs := m["example"]
(Я нашел его как часть Go by Example: Maps )
prs
вероятно, означает «настоящее». Код в вашем примере проверяет наличие или отсутствие записи для"example"
наm
карте.Ответы:
Это позволяет избежать объявления всех переменных для возвращаемых значений.
Это называется пустым идентификатором .
Как в:
( другой
_
вариант использования - импорт )Поскольку он отбрасывает возвращаемое значение, это полезно, когда вы хотите проверить только одно из возвращенных значений, как в разделе « Как проверить наличие ключа на карте? » В разделе « Эффективный переход, карта »:
Как добавляет Jsor в комментариях :
Это позволяет комбинировать его с тестом:
Вы также найдете это в цикле:
источник
Компилятор Go не позволит вам создавать переменные, которые вы никогда не используете.
Приведенный выше код вернет сообщение об ошибке «Я объявлен и не используется».
Поскольку мы не используем i внутри нашего цикла, нам нужно изменить его на это:
источник
_
- пустой идентификатор. Это означает, что значение, которое ему следует присвоить, отбрасывается.Здесь
example
отбрасывается значение ключа. Вторая строка кода отбрасывает логическое значение присутствия и сохраняет значение вprs
.Таким образом, чтобы только проверить наличие на карте, вы можете отбросить значение. Это можно использовать для использования карты как набора.
источник
Выдержка из:
Язык программирования Go (серия профессиональных вычислений Аддисон-Уэсли)
Брайан В. Керниган
Этот материал может быть защищен авторским правом.
источник
Он называется пустым идентификатором и помогает в тех случаях, когда вы хотите отбросить значение, которое будет возвращено, и не ссылаться на него.
Некоторые места, где мы его используем:
источник
Обычно это
_,
называется пустым идентификатором. В GO у нас не может быть переменных, которые не используются.Например, при итерации по массиву, если вы используете value: = range, вам не нужно значение i для итерации. Но если вы опустите значение i, он вернет ошибку. Но если вы объявите i и не использовали его, он также вернет ошибку.
Следовательно, это то место, где мы должны использовать
_,
.Также он используется, когда вы не хотите, чтобы функция возвращала значение в будущем.
источник
Отличный вариант использования неиспользуемой переменной - это ситуация, когда вам нужен только частичный вывод. В приведенном ниже примере нам нужно только напечатать значение (население штата).
источник
Если вы переходили с других языков программирования, вам было бы немного сложно привыкнуть к этому. Но это приводит к более чистому коду. Таким образом, используя a,
_
мы говорим, что знаем, что есть переменная, но не хотим ее использовать, и сообщаем компилятору, что не жалуется мне на это. :)источник