Junior — Middle
Aké obmedzenia existujú v jazyku Go, aby rozhranie nem mohlo byť vyhlásené ako prázdne?
sobes.tech AI
Odpoveď od AI
V jazyku Go môže byť rozhranie (interface) deklarované ako prázdne — ide o špeciálny prípad rozhrania, ktoré neobsahuje žiadne metódy a označuje sa ako interface{}.
Prázdne rozhranie môže obsahovať hodnoty akéhokoľvek typu, pretože všetky typy ho automaticky implementujú.
Preto neexistujú žiadne obmedzenia na deklaráciu prázdneho rozhrania v Go — je to platná a často používaná technika.
Ak je otázka, ako zabezpečiť, aby rozhranie nebolo prázdne, stačí v ňom deklarovať aspoň jednu metódu:
// Prázdne rozhranie
var i interface{}
// Rozhranie s metódou
type Reader interface {
Read(p []byte) (n int, err error)
}
Takto je prázdne rozhranie základnou stavebnou jednotkou v Go, a na jeho deklaráciu neplatí žiadne obmedzenie.