Junior — Middle
Come si può determinare il tipo specifico di un oggetto che implementa un'interfaccia?
sobes.tech AI
Risposta dell'AI
In Go, per determinare un oggetto di un tipo specifico che implementa un'interfaccia, si utilizza l'affermazione di tipo (type assertion) o il switch di tipo (type switch).
Esempio con affermazione di tipo:
var i interface{} = someInterfaceValue
if v, ok := i.(ConcreteType); ok {
// v ha tipo ConcreteType
fmt.Println("Questo è ConcreteType", v)
} else {
fmt.Println("Altro tipo")
}
Esempio con switch di tipo:
switch v := i.(type) {
case ConcreteType:
fmt.Println("Questo è ConcreteType", v)
case AnotherType:
fmt.Println("Questo è AnotherType", v)
default:
fmt.Println("Tipo sconosciuto")
}