Что такое интерфейс в Go и для чего он нужен?

Junior
1.5k просмотров
AFK Offer AI

Интерфейс — это набор сигнатур методов. Любой тип, у которого есть эти методы, автоматически реализует интерфейс — никакого implements писать не надо, это implicit implementation. Интерфейсы нужны для полиморфизма и decoupling: функция принимает io.Reader, а ты передаёшь файл, сетевое соединение или буфер — ей без разницы. Маленькие интерфейсы (1-2 метода) — идиоматичный Go, отсюда io.Reader, io.Writer, fmt.Stringer.

Следующий вопрос

Что такое индекс в БД?