Sobes.tech
Junior — Middle

Milline on erinevus struktuuri ja liidese vahel programmeerimiskeeles?

sobes.tech AI

Vastus AI-lt

Go keeles on struktuur (struct) konkreetne andmetüüp, mis sisaldab hulka välju (muutujaid). See kirjeldab, kuidas andmed on organiseeritud, kuid ise ei sisalda käitumist.

Interfeis (interface) Go keeles kirjeldab meetodite kogumit, mida tüüp peab rakendama, et sellele vastata. Interfeis ei sisalda andmeid, vaid ainult meetodite allkirju.

Peamised erinevused:

  • Struktuur: on konkreetne rakendus väljadega.
  • Interfeis: on abstraktsioon, mis kirjeldab käitumist meetodite kaudu.
  • Struktuur võib rakendada ühte või mitut interfeisi, kui tal on vastavad meetodid.

Näide:

// Meetoditeta struktuur
type User struct {
    Name string
    Age  int
}

// Interfeis meetodiga
type Greeter interface {
    Greet() string
}

// Interfeisi rakendamine
func (u User) Greet() string {
    return "Hello, " + u.Name
}

Siin on User struktuur väljadega ja Greeter on käitumist kirjeldav interfeis. Ilma meetodita Greet ei rakenda struktuur User interfeisi Greeter.