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.