Junior — Middle
Jaký je vztah mezi prázdným rozhraním a běžným rozhraním v programování?
sobes.tech AI
Odpověď od AI
V Go je prázdné rozhraní interface{} rozhraní, které neobsahuje žádné metody. Může uchovávat hodnotu libovolného typu, protože všechny typy implicitně implementují prázdné rozhraní. Naopak běžné rozhraní definuje sadu metod, které musí typ implementovat, aby splnil toto rozhraní.
Tedy vztah mezi prázdným a běžným rozhraním v Go spočívá v tom, že prázdné rozhraní je univerzální kontejner pro hodnoty jakéhokoliv typu, zatímco běžné rozhraní stanoví smlouvu, kterou musí splnit konkrétní typy. Prázdné rozhraní se často používá pro ukládání a přenos dat bez specifického typu, zatímco běžná rozhraní slouží k definování chování objektů.
Příklad:
var any interface{} = 42 // prázdné rozhraní může uchovávat jakoukoli hodnotu
// Běžné rozhraní
type Reader interface {
Read(p []byte) (n int, err error)
}
// Typ implementující Reader
type File struct {}
func (f File) Read(p []byte) (int, error) {
// implementace
return 0, nil
}
var r Reader = File{} // File implementuje rozhraní Reader