Классическая ловушка Go. Интерфейс хранит пару (тип, значение). Когда тип установлен, а значение nil — интерфейс НЕ равен nil. var p *MyError = nil; var err error = p; err != nil — true! Потому что err содержит (*MyError, nil), а не (nil, nil). Это ломает проверки if err != nil. Решение: возвращай явно nil, а не типизированную переменную: if something { return nil } вместо var err *MyError; return err. Или проверяй через reflect, но это костыль.
Что такое typed nil interface problem?
Middle+
313 просмотровAFK Offer AI
Задача: найдите пересечение двух массивов