Senior
Mi az interfész a Go-ban? Hogyan valósítják meg a típusok az interfészeket?
sobes.tech MI
Válasz az MI-től
Go nyelven egy interfész egy olyan metódusokból álló halmaz, amelyek egy viselkedést írnak le. Egy típus akkor valósít meg egy interfészt, ha tartalmazza az összes, az interfészben deklarált metódust, anélkül, hogy explicit módon jelezné az interfész megvalósítását.
Ezt nevezzük implicit interfész megvalósításnak. Ennek köszönhetően rugalmasabb és bővíthetőbb kód írható.
Példa:
package main
import "fmt"
type Reader interface {
Read(p []byte) (n int, err error)
}
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// olvasási megvalósítás
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // A File megvalósítja a Reader-t
fmt.Println(r)
}
Itt a File típus megvalósítja a Reader interfészt, mert rendelkezik a szükséges aláírású Read metódussal.