Sobes.tech
Junior — Middle

Meg tudná magyarázni, hogy mik az interfészek a Go nyelvben, és hogyan működnek?

sobes.tech MI

Válasz az MI-től

Go nyelvben az interfész egy olyan metódusok halmaza, amelyeket egy típusnak meg kell valósítania ahhoz, hogy megfeleljen ennek az interfésznek. Az interfészek lehetővé teszik a viselkedés leírását anélkül, hogy konkrét megvalósítást adnánk meg, ezáltal támogatva a polimorfizmust.

A Go interfészeinek jellemzői:

  • Láthatatlan megvalósítás: egy típus akkor tekinthető az interfész megvalósítójának, ha rendelkezik az összes interfész metódusával, anélkül, hogy ezt explicit módon jelezné.
  • Egy interfész tartalmazhat egy vagy több metódust.
  • Egy interfész típusú változó bármilyen olyan értéket tárolhat, amely megvalósítja ezt az interfészt.

Példa:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct{}
func (d Dog) Speak() string {
    return "Vau"
}

type Cat struct{}
func (c Cat) Speak() string {
    return "Miau"
}

func saySomething(s Speaker) {
    fmt.Println(s.Speak())
}

func main() {
    d := Dog{}
    c := Cat{}
    saySomething(d) // Kimenet: Vau
    saySomething(c) // Kimenet: Miau
}

Így az interfészek lehetővé teszik rugalmas és bővíthető kód írását, absztrakciókon alapulva, nem konkrét típusokon.