Junior — Middle
Kāda ir atšķirība starp Go valodas saskarni un citās programmēšanas valodās saskarnēm?
sobes.tech AI
Atbilde no AI
Go valodā interfeisi atšķiras ar to, ka tie ir netieši — tips nav jānorāda tieši, ka tas realizē interfeisu. Ja tips satur visas interfeisa metodes, tas automātiski tiek uzskatīts par tā realizāciju.
Tas atšķiras no daudziem citiem valodām, kur ir nepieciešams tieši deklarēt, ka klase vai tips realizē interfeisu.
Piemērs:
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) {
// metodes realizācija
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File automātiski realizē Reader
fmt.Println(r)
}