Back to questions
Бюро 1440
Middle+
3
Что такое интерфейс в Go и как работает duck typing?
Companies where asked
Answer from AI
sobes.tech AI
В Go интерфейс — это набор методов, который описывает поведение. Любой тип, реализующий все методы интерфейса, автоматически считается его реализацией, без явного указания этого в коде.
Это реализует концепцию duck typing: если объект "выглядит как утка и крякает как утка", то он и есть утка. В Go это значит, что не нужно явно объявлять, что тип реализует интерфейс — достаточно иметь нужные методы.
Пример:
type Reader interface {
Read(p []byte) (n int, err error)
}
// Любой тип, у которого есть метод Read([]byte) (int, error), реализует Reader
func ReadData(r Reader) {
buf := make([]byte, 100)
r.Read(buf)
}
Таким образом, интерфейсы в Go позволяют писать гибкий и расширяемый код без жесткой привязки к конкретным типам.