Senior
Cosa sono le interfacce in Go? Come i tipi implementano le interfacce?
sobes.tech AI
Risposta dell'AI
In Go, un'interfaccia è un insieme di metodi che descrivono un comportamento. Un tipo implementa un'interfaccia se contiene tutti i metodi dichiarati nell'interfaccia, senza bisogno di indicare esplicitamente l'implementazione dell'interfaccia.
Questo è chiamato implementazione implicita delle interfacce. Grazie a questo, si può scrivere codice più flessibile ed estensibile.
Esempio:
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) {
// implementazione della lettura
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File implementa Reader
fmt.Println(r)
}
Qui, il tipo File implementa l'interfaccia Reader perché ha un metodo Read con la firma richiesta.