Обычный интерфейс Go задаёт набор методов; тип соответствует ему неявно, если имеет нужный method set. Значение интерфейса содержит динамический тип и значение.
Что можешь рассказать про интерфейсы в Go?
Обычный интерфейс Go задаёт набор методов; тип соответствует ему неявно, если имеет нужный method set. Значение интерфейса содержит динамический тип и значение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Обычный интерфейс Go задаёт набор методов; тип соответствует ему неявно, если имеет нужный method set. Значение интерфейса содержит динамический тип и значение.
Поэтому интерфейс с nil-указателем внутри может быть не равен nil. Наборы методов T и *T различаются, что важно для pointer receiver. Делайте интерфейсы небольшими и ориентированными на потребителя. Утверждение типа и type switch позволяют работать с конкретными вариантами, но чрезмерные проверки часто показывают неудачную границу абстракции.