Sobes.tech
Junior — Middle

Ar struktūra Go kalboje gali įgyvendinti sąsają ir kaip tai padaryti?

sobes.tech AI

Atsakymas iš AI

Taip, Go kalboje struktūra gali įgyvendinti sąsają. Tam struktūra turi turėti visas sąsajoje deklaruotas metodus. Go kalboje sąsajos įgyvendinimas nereikalauja aiškios deklaracijos — jei struktūra turi būtinus metodus, ji automatiškai laikoma, kad įgyvendina sąsają.

Pavyzdys:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Labas, mano vardas " + p.Name
}

func main() {
    var s Speaker = Person{Name: "Ivan"}
    fmt.Println(s.Speak())
}

Šiame pavyzdyje, Person įgyvendina Speaker sąsają, nes turi Speak() metodą su reikiama parašu.