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