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