в чем проблема последнего сравнения?
уж ладно, подскажу 🙂 foo() возвращает не nil, он возвращает *main.Error(nil) т.е. возращаемый интерфейс error указывает на указатель, поэтому он не nil, а в самом указатели на main.Error - nil
обязательно почитай про внутренее уствойство Go'шных interface'ов
Обсуждают сегодня