Back to questions
Junior — Middle
98
Чем отличаются интерфейсы от обобщенных типов в программировании?
Companies where asked
Miatel
Answer from AI
sobes.tech AI
Интерфейсы и обобщённые типы (generics) решают разные задачи в программировании:
-
Интерфейсы описывают набор методов, которые должен реализовать тип. Они позволяют работать с разными типами через общий контракт, обеспечивая полиморфизм. Например, интерфейс
Readerв Go определяет методRead(), и любой тип, реализующий этот метод, может использоваться какReader. -
Обобщённые типы позволяют писать функции и структуры, которые работают с разными типами данных, сохраняя при этом типовую безопасность. Это шаблоны, параметризованные типами, которые компилируются под конкретные типы при использовании.
Пример на Go:
// Интерфейс
type Reader interface {
Read(p []byte) (n int, err error)
}
// Обобщённая функция
func PrintSlice[T any](s []T) {
for _, v := range s {
fmt.Println(v)
}
}
Таким образом, интерфейсы определяют поведение, а обобщённые типы — универсальность кода для разных типов.