Как сказать компилятору что тип реализует интерфейс?

Junior
813 просмотров
AFK Offer AI

В Go интерфейсы реализуются неявно — не нужно объявлять implements. Но можно явно проверить на этапе компиляции:

var _ io.Writer = (*MyWriter)(nil)

Эта строка не создаёт переменную в рантайме (underscore), но заставляет компилятор проверить, что *MyWriter реализует io.Writer. Если не реализует — ошибка компиляции.

Это стандартная практика в Go-проектах. Часто пишут в начале файла с типом. Проверяет только сигнатуры методов, не логику.

Следующий вопрос

Что такое атомарные операции?