Sobes.tech
Junior — Middle

Jaká omezení existují v jazyce Go, aby rozhraní nemohlo být deklarováno jako prázdné?

sobes.tech AI

Odpověď od AI

V jazyce Go může být rozhraní (interface) deklarováno jako prázdné — jedná se o speciální případ rozhraní, které neobsahuje žádné metody a označuje se jako interface{}.

Prázdné rozhraní může obsahovat hodnoty jakéhokoliv typu, protože všechny typy ho automaticky implementují.

Proto neexistují žádná omezení na deklaraci prázdného rozhraní v Go — je to platná a často používaná technika.

Pokud je otázka, jak zajistit, aby rozhraní nebylo prázdné, stačí v něm deklarovat alespoň jednu metodu:

// Prázdné rozhraní
var i interface{}

// Rozhraní s metodou
type Reader interface {
    Read(p []byte) (n int, err error)
}

Tím je prázdné rozhraní základní stavební blok v Go, a na jeho deklaraci neplatí žádná omezení.