Sobes.tech
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)
}