Sobes.tech
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.