Junior — Middle
Care este diferența dintre interfața în limbajul Go și interfețele din alte limbaje de programare?
sobes.tech AI
Răspuns de la AI
În limbajul Go, interfețele diferă prin faptul că sunt implicite — tipul nu trebuie să indice explicit că implementează interfața. Dacă un tip conține toate metodele interfeței, este considerat automat ca implementând-o.
Aceasta diferă de multe alte limbaje, unde este necesar să declareți explicit că o clasă sau un tip implementează o interfață.
Exemplu:
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) {
// implementarea metodei
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File implementează automat Reader
fmt.Println(r)
}