💬 Как сообщить компилятору Go, что наш тип реализует интерфейс?



В Go, интерфейсы реализуются неявно. Это означает, что нам не нужно явно указывать, что наш тип реализует интерфейс.



Вместо этого, если наш тип определяет все методы, которые присутствуют в интерфейсе, то он считается его реализующим.



📌Простой пример:



Допустим, у нас есть следующий интерфейс:



type Speaker interface {

Speak() string

}





и тип Person:



type Person struct {

Name string

}



func (p Person) Speak() string {

return "My name is " + p.Name

}





Так как Person определяет метод Speak(), который присутствует в интерфейсе Speaker, Person автоматически реализует интерфейс Speaker. Нет необходимости в дополнительном коде или объявлении для подтверждения этого.