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)
}