Sobes.tech
Junior — Middle

Čím se liší rozhraní od obecných typů v programování?

sobes.tech AI

Odpověď od AI

Rozhraní a generické typy plní různé úkoly v programování:

  • Rozhraní popisují sadu metod, které musí typ implementovat. Umožňují pracovat s různými typy prostřednictvím společného kontraktu, čímž zajišťují polymorfismus. Například rozhraní Reader v Go definuje metodu Read(), a jakýkoli typ, který tuto metodu implementuje, může být použit jako Reader.

  • Generické typy umožňují psát funkce a struktury, které pracují s různými datovými typy, přičemž zachovávají typovou bezpečnost. Jsou to parametrizované šablony, které se při použití kompilují pro konkrétní typy.

Příklad v Go:

// Rozhraní
 type Reader interface {
     Read(p []byte) (n int, err error)
 }

// Generická funkce
 func PrintSlice[T any](s []T) {
     for _, v := range s {
         fmt.Println(v)
     }
 }

Tímto způsobem rozhraní určují chování, a generické typy nabízejí univerzálnost kódu pro různé typy.