В Go есть странная, но полностью валидная конструкция… — Golang вопросы собеседований — TG.ME

🔥 В Go есть странная, но полностью валидная конструкция:

error.Error(errors.ErrUnsupported)

Почему это работает:

- errors.ErrUnsupported — реальная ошибка из пакета errors
- error — интерфейс
- Error — его метод
- метод в Go можно вызвать как обычную функцию через method expression

Поэтому:


err := errors.New("oops")

err.Error()
error.Error(err)


дадут одинаковый результат.

А:


error.Error(errors.ErrUnsupported)



вернёт:


"unsupported operation"

Непривычный синтаксис, который легко принять за ошибку, хотя это обычная возможность языка.
👍7🔥6❤3😁3
August 31, 2026 2K 12