Junior — Middle
Come indicare al compilatore che una classe specifica implementa un'interfaccia determinata?
sobes.tech AI
Risposta dell'AI
In Go, l'implementazione di un'interfaccia avviene in modo implicito: se un tipo implementa tutti i metodi di un'interfaccia, viene automaticamente considerato come implementante di quell'interfaccia. Non è necessario indicarlo esplicitamente.
Esempio:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "bau!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implementa l'interfaccia Speaker
fmt.Println(s.Speak())
}
Se si desidera verificare esplicitamente che un tipo implementa un'interfaccia, si può usare una verifica di compilazione:
var _ Speaker = (*Dog)(nil) // Il compilatore controllerà che *Dog implementa Speaker
In questo modo, in Go, le interfacce vengono implementate automaticamente quando i metodi necessari sono presenti.