Junior — Middle
Come si può determinare se una determinata struttura implementa un'interfaccia data?
sobes.tech AI
Risposta dell'AI
In Go, l'implementazione di un'interfaccia viene verificata in modo implicito: se un tipo contiene tutti i metodi dichiarati nell'interfaccia, implementa automaticamente questa interfaccia.
Per determinare se una struttura implementa un'interfaccia data, si può:
- Provare ad assegnare un'istanza della struttura a una variabile di tipo interfaccia — se la compilazione ha successo, significa che la struttura implementa l'interfaccia.
- Usare una verifica statica con _var _:
var _ MyInterface = (*MyStruct)(nil)
Se questo codice si compila senza errori, significa che MyStruct implementa l'interfaccia MyInterface.
Esempio:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// implementazione
}
// Verifica implementazione interfaccia
var _ MyInterface = (*MyStruct)(nil)
In questo modo, in Go non è necessario indicare esplicitamente l'implementazione di un'interfaccia — basta implementare tutti i suoi metodi.