SobesLab логотип SobesLab

Ответ

Потому что интерфейсное значение в Go состоит из двух частей: конкретного типа и указателя на данные. Если переменной interface{} присвоен nil указатель какого-то типа (например, *MyStruct(nil)), сам интерфейс не равен nil — в нём сохранена информация о типе. Интерфейс считается nil-только когда в нём не задан ни тип, ни значение.