Junior — Middle
Czym różnią się interfejsy od typów generycznych w programowaniu?
sobes.tech AI
Odpowiedź od AI
Interfejsy i typy generyczne rozwiązują różne zadania w programowaniu:
-
Interfejsy opisują zestaw metod, które musi zaimplementować typ. Umożliwiają pracę z różnymi typami poprzez wspólny kontrakt, zapewniając polimorfizm. Na przykład, interfejs
Readerw Go definiuje metodęRead(), a dowolny typ implementujący tę metodę może być używany jakoReader. -
Typy generyczne pozwalają pisać funkcje i struktury, które działają z różnymi typami danych, zachowując bezpieczeństwo typów. Są to szablony parametryzowane typami, które kompilują się dla konkretnych typów podczas użycia.
Przykład w Go:
// Interfejs
type Reader interface {
Read(p []byte) (n int, err error)
}
// Funkcja generyczna
func PrintSlice[T any](s []T) {
for _, v := range s {
fmt.Println(v)
}
}
W ten sposób, interfejsy określają zachowanie, a typy generyczne zapewniają uniwersalność kodu dla różnych typów.