Junior — Middle
Jaký je rozdíl mezi strukturou bez metod a rozhraním v programovacím jazyce?
sobes.tech AI
Odpověď od AI
V jazyce Go je struktura (struct) konkrétním datovým typem, který obsahuje sadu polí (proměnných). Popisuje, jak jsou data uspořádána, ale sama o sobě neobsahuje chování.
Rozhraní (interface) v Go popisuje sadu metod, které musí typ implementovat, aby odpovídal tomuto rozhraní. Rozhraní neobsahuje data, pouze podpisy metod.
Hlavní rozdíly:
- Struktura: je konkrétní implementace s poli.
- Rozhraní: abstrakce popisující chování prostřednictvím metod.
- Struktura může implementovat jedno nebo více rozhraní, pokud má odpovídající metody.
Příklad:
// Struktura bez metod
type User struct {
Name string
Age int
}
// Rozhraní s metodou
type Greeter interface {
Greet() string
}
// Implementace rozhraní
func (u User) Greet() string {
return "Hello, " + u.Name
}
Zde je User struktura s poli a Greeter rozhraní popisující chování. Bez metody Greet struktura User neimplementuje rozhraní Greeter.