Junior — Middle
Kuo skiriasi struktūra be metodų ir sąsaja programavimo kalboje?
sobes.tech AI
Atsakymas iš AI
Go kalbā struktūra (struct) ir konkrēts datu tips, kas satur virkni lauku (mainīgo). Tā apraksta, kā ir organizēti dati, bet pati par sevi nesatur uzvedību.
Interfeiss (interface) Go valodā apraksta metožu kopumu, ko tips ir jāievieš, lai atbilstu šim interfeisam. Interfeiss nesatur datus, tikai metožu parakstus.
Galvenās atšķirības:
- Struktūra: ir konkrēta realizācija ar laukiem.
- Interfeiss: ir abstrakcija, kas apraksta uzvedību caur metodēm.
- Struktūra var realizēt vienu vai vairākus interfeisus, ja tai ir atbilstošās metodes.
Piemērs:
// Struktūra bez metodēm
type User struct {
Name string
Age int
}
// Interfeiss ar metodi
type Greeter interface {
Greet() string
}
// Interfeisa realizācija
func (u User) Greet() string {
return "Hello, " + u.Name
}
Šeit User ir lauku struktūra, bet Greeter ir uzvedību aprakstošs interfeiss. Bez metodes Greet, struktūra User neievieš interfeisu Greeter.