Sobes.tech
Junior — Middle

Képes-e egy struktúra a Go-ban interfészt megvalósítani, és hogyan?

sobes.tech MI

Válasz az MI-től

Igen, Go nyelvben egy struktúra megvalósíthat egy interfészt. Ehhez a struktúrának rendelkeznie kell az összes, az interfészben deklarált módszerrel. Go-ban az interfész megvalósítása nem igényel kifejezett nyilatkozatot — ha a struktúra tartalmazza a szükséges módszereket, automatikusan megvalósítja az interfészt.

Példa:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Szia, a nevem " + p.Name
}

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

Ebben a példában a Person megvalósítja a Speaker interfészt, mert rendelkezik a Speak() módszerrel, amely a szükséges szignatúrát tartalmazza.