💬 Как сообщить компилятору Go, что наш тип реализует интерфейс?
В 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
. Нет необходимости в дополнительном коде или объявлении для подтверждения этого.