Sobes.tech
Junior — Middle

Egyenértékűek-e azok az interfészek, amelyek nem tartalmaznak metódusokat, és az, amely bármilyen típusokat engedélyez?

sobes.tech MI

Válasz az MI-től

Go-ban egy olyan interfész, amely nem tartalmaz metódusokat, az üres interfész interface{}-ként ismert. Ez egy univerzális típus, amely bármilyen típusú értéket tartalmazhat.

A metódus nélküli interfész és az összes típus elfogadására képes interfész lényegében ugyanaz, mert az üres interfész nem ró semmilyen korlátozást arra, hogy milyen típusokat tartalmazhat.

Példa:

var x interface{} // üres interfész
x = 42           // egész számot rendelhetünk hozzá
x = "helló"     // stringet rendelhetünk hozzá

Így az üres interfész módja annak, hogy a Go-ban "bármilyen típus"-t fejezzünk ki. A metódus nélküli interfész és az összes típus elfogadására képes interfész ugyanaz.