Junior — Middle
Aký je rozdiel medzi štruktúrou bez metód a rozhraním v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V jazyku Go je štruktúra (struct) konkrétny dátový typ, ktorý obsahuje súbor polí (premenných). Popisuje, ako sú údaje usporiadané, ale sama o sebe neobsahuje správanie.
Rozhranie (interface) v Go popisuje súbor metód, ktoré musí typ implementovať, aby zodpovedal tomuto rozhraniu. Rozhranie neobsahuje údaje, iba podpisy metód.
Hlavné rozdiely:
- Štruktúra: je konkrétna implementácia s poľami.
- Rozhranie: abstrakcia, ktorá popisuje správanie prostredníctvom metód.
- Štruktúra môže implementovať jedno alebo viac rozhraní, ak má príslušné metódy.
Príklad:
// Štruktúra bez metód
type User struct {
Name string
Age int
}
// Rozhranie s metódou
type Greeter interface {
Greet() string
}
// Implementácia rozhrania
func (u User) Greet() string {
return "Hello, " + u.Name
}
Tu je User štruktúra s poľami a Greeter je rozhranie, ktoré popisuje správanie. Bez metódy Greet štruktúra User neimplementuje rozhranie Greeter.