Junior — Middle
Milyen korlátozások vannak a Go nyelvben, hogy az interfész ne legyen üresen deklarálva?
sobes.tech MI
Válasz az MI-től
A Go nyelvben az interfész lehet üres — ez egy speciális eset, amikor az interfész nem tartalmaz metódusokat, és interface{}-ként jelöljük.
Az üres interfész bármilyen típusú értéket tartalmazhat, mivel minden típus automatikusan megvalósítja.
Ezért nincs korlátozás az üres interfész deklarálására Go-ban — ez egy érvényes és gyakran használt módszer.
Ha a kérdés arra vonatkozik, hogyan lehet megakadályozni, hogy az interfész üres legyen, elég, ha legalább egy metódust deklarálsz benne:
// Üres interfész
var i interface{}
// Metódusos interfész
type Reader interface {
Read(p []byte) (n int, err error)
}
Így az üres interfész a Go alapvető építőköve, és nincs korlátozás a deklarációjára.