Junior — Middle
Kokios yra ribos Go kalboje, kad interfeisas negalėtų būti tuščias?
sobes.tech AI
Atsakymas iš AI
Go kalboje, sąsaja gali būti deklaruota kaip tuščia — tai specialus sąsajos atvejis, kuris neapima jokių metodų ir žymimas kaip interface{}.
Tuščia sąsaja gali turėti bet kokio tipo reikšmes, nes visi tipai ją automatiškai įgyvendina.
Todėl nėra jokių apribojimų deklaruojant tuščią sąsają Go kalboje — tai galiojanti ir dažnai naudojama technika.
Jei klausimas yra, kaip padaryti, kad sąsaja nebūtų tuščia, pakanka joje deklaruoti bent vieną metodą:
// Tuščia sąsaja
var i interface{}
// Sąsaja su metodu
type Reader interface {
Read(p []byte) (n int, err error)
}
Taip, tuščia sąsaja yra pagrindinis statybinis blokas Go kalboje, ir jokių apribojimų jos deklaravimui nėra.