Senior
Kas yra sąsajos Go? Kaip tipai įgyvendina sąsajas?
sobes.tech AI
Atsakymas iš AI
Go kalboje, sąsaja yra metodų rinkinys, aprašantis elgesį. Tipas įgyvendina sąsają, jei ji turi visas sąsajoje deklaruotas metodus, be aiškaus sąsajos įgyvendinimo nurodymo.
Tai vadinama nepastebimu sąsajų įgyvendinimu. Dėl to galima rašyti lankstesnį ir išplečiamesnį kodą.
Pavyzdys:
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) {
// skaitymo įgyvendinimas
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File įgyvendina Reader
fmt.Println(r)
}
Čia, tipas File įgyvendina sąsają Reader, nes turi metodą Read su reikiama parašu.