Sobes.tech
Junior — Middle

Mi a kapcsolat a üres felület és a szokásos felület között a programozásban?

sobes.tech MI

Válasz az MI-től

Go-ban a interface{} üres interfész olyan interfész, amely nem tartalmaz metódusokat. Bármilyen típus értékét tárolhatja, mivel minden típus alapértelmezés szerint megvalósítja az üres interfészt. Egy normál interfész ezzel szemben meghatározza azokat a metódusokat, amelyeket egy típusnak meg kell valósítania, hogy megfeleljen ennek az interfésznek.

Így a kapcsolat az üres és a normál interfészek között Go-ban az, hogy az üres interfész univerzális tároló minden típus értékei számára, míg a normál interfész szerződést határoz meg, amelyet bizonyos típusoknak követniük kell. Az üres interfészt gyakran használják adatok tárolására és továbbítására anélkül, hogy konkrét típushoz kötődnének, míg a normál interfészek az objektumok viselkedésének meghatározására szolgálnak.

Példa:

var any interface{} = 42 // az üres interfész bármilyen értéket tárolhat

// Normál interfész
type Reader interface {
    Read(p []byte) (n int, err error)
}

// Típus, amely megvalósítja a Reader-t
type File struct {}
func (f File) Read(p []byte) (int, error) {
    // implementáció
    return 0, nil
}

var r Reader = File{} // A File megvalósítja a Reader interfészt