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