Sobes.tech
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 Reader w Go definiuje metodę Read(), a dowolny typ implementujący tę metodę może być używany jako Reader.

  • 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.