Вопрос: Что такое interface и как проверить, что тип реализует интерфейс?
Go
Junior
Без компании
Вопрос: Что такое interface и как проверить, что тип реализует интерфейс?
Ответы
Интерфейс задаёт набор методов. Реализация неявная: тип реализует интерфейс, если у него есть нужные методы.
Проверка на этапе компиляции:
```go
package main
type Stringer interface { String() string }
type User struct{ Name string }
func (u User) String() string { return u.Name }
var _ Stringer = User{} // если не реализует — ошибка компиляции
func main() {}
```
Это полезно в больших проектах, чтобы не сломать контракт.