Sobes.tech
Junior — Middle

Qual è la differenza tra l'interfaccia nel linguaggio Go e le interfacce in altri linguaggi di programmazione?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go, le interfacce si differenziano per il fatto che sono implicite — il tipo non deve indicare esplicitamente di implementare l'interfaccia. Se un tipo contiene tutti i metodi dell'interfaccia, viene automaticamente considerato come sua implementazione.

Questo differisce da molti altri linguaggi, dove è necessario dichiarare esplicitamente che una classe o un tipo implementa un'interfaccia.

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

func main() {
    var r Reader
    var f File
    r = f // File implementa automaticamente Reader
    fmt.Println(r)
}