В Go реализация интерфейса неявная. Компилятору достаточно, чтобы тип имел все методы, объявленные в интерфейсе, с совпадающей сигнатурой.
Пример:
go
Иногда для явной проверки реализации на этапе компиляции используется конструкция var _ InterfaceType = ConcreteType{}. Если ConcreteType не реализует InterfaceType, компилятор выдаст ошибку.
go