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