Junior — Middle
Kuo skiriasi Go kalbos sąsaja nuo kitų programavimo kalbų sąsajų?
sobes.tech AI
Atsakymas iš AI
Go kalboje sąsajos ypatumas yra tai, kad jos yra neaiškios — tipas neturi aiškiai nurodyti, kad jis įgyvendina sąsają. Jei tipas turi visas sąsajos metodus, jis automatiškai laikomas jos įgyvendinimu.
Tai skiriasi nuo daugelio kitų kalbų, kuriose reikia aiškiai deklaruoti, kad klasė ar tipas įgyvendina sąsają.
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) {
// metodo įgyvendinimas
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File automatiškai įgyvendina Reader
fmt.Println(r)
}