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.