Sobes.tech
Junior — Middle

Mi a különbség az interfészek és az általános típusok között a programozásban?

sobes.tech MI

Válasz az MI-től

A felületek és a generikus típusok különböző feladatokat látnak el a programozásban:

  • Felületek leírják azoknak a metódusoknak a halmazát, amelyeket egy típusnak meg kell valósítania. Lehetővé teszik, hogy különböző típusokkal egy közös szerződésen keresztül dolgozzunk, biztosítva a polimorfizmust. Például a Go nyelvben a Reader felület definiálja a Read() metódust, és bármilyen típus, amely ezt a metódust megvalósítja, Reader-ként használható.

  • Generikus típusok lehetővé teszik, hogy olyan függvényeket és szerkezeteket írjunk, amelyek különböző adat típusokkal működnek, miközben megőrzik a típusbiztonságot. Ezek típusparaméteres sablonok, amelyek a használat során fordulnak le konkrét típusokra.

Példa Go nyelven:

// Felület
 type Reader interface {
     Read(p []byte) (n int, err error)
 }

// Generikus függvény
 func PrintSlice[T any](s []T) {
     for _, v := range s {
         fmt.Println(v)
     }
 }

Így a felületek meghatározzák a viselkedést, míg a generikus típusok általánosítják a kódot különböző típusokra.