Junior — Middle
Mi a különbség a Go nyelvű interfész és más programozási nyelvek interfészei között?
sobes.tech MI
Válasz az MI-től
A Go nyelvben az interfészek eltérnek abban, hogy implicit módon működnek — a típusnak nem kell kifejezetten jeleznie, hogy megvalósítja az interfészt. Ha egy típus tartalmazza az összes metódust az interfészből, akkor automatikusan annak megvalósításának számít.
Ez különbözik sok más nyelvtől, ahol explicit módon kell bejelenteni, hogy egy osztály vagy típus megvalósít egy interfészt.
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) {
// metódus implementáció
return 0, nil
}
func main() {
var r Reader
var f File
r = f // A File automatikusan megvalósítja a Reader-t
fmt.Println(r)
}