Sobes.tech
Senior

Ce sunt interfețele în Go? Cum implementează tipurile interfețele?

sobes.tech AI

Răspuns de la AI

În Go, o interfață este un set de metode care descriu un comportament. Un tip implementează o interfață dacă conține toate metodele declarate în interfață, fără a indica explicit implementarea interfeței.

Aceasta se numește implementare implicită a interfețelor. Datorită acestui fapt, se poate scrie un cod mai flexibil și extensibil.

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 citirii
    return 0, nil
}

func main() {
    var r Reader
    f := File{}
    r = f // File implementează Reader
    fmt.Println(r)
}

Aici, tipul File implementează interfața Reader deoarece are o metodă Read cu semnătura necesară.