mak_ufo
@mak_ufo

Как понять эту строчку в коде?

Смотрю тут документацию к модулю сессий для martini. И мне не совсем понятна вот этот часть:
v := session.Get("hello")
return v.(string)


v - это структура, как я понял. Чтобы обратиться к полю, я должен написать v.name (например). Чтобы вызвать метод, я должен выполнить v.name(), но что означает v.(string)?
  • Вопрос задан
  • 254 просмотра
Решения вопроса 1
v — это пустой интерфейс interface{}, в котором может лежать абсолютно любое значение любого типа данных. Чтобы достать оттуда это значение и использовать, надо привести его к нужному типу.
v.(string) приводит его к типу string. Мы тут можем так делать, так как знаем, что Get нам возвращает string. Если в v при этом будет лежать не string, мы получим панику на строчке v.(string).
https://tour.golang.org/methods/15
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы