Sobes.tech
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")
}