Sobes.tech
Junior — Middle

Como se pode determinar o tipo específico de um objeto que implementa uma interface?

sobes.tech IA

Resposta da IA

Em Go, para determinar um objeto de um tipo específico que implementa uma interface, utiliza-se a afirmação de tipo (type assertion) ou o switch de tipo (type switch).

Exemplo com afirmação de tipo:

var i interface{} = someInterfaceValue
if v, ok := i.(ConcreteType); ok {
    // v tem o tipo ConcreteType
    fmt.Println("Isto é ConcreteType", v)
} else {
    fmt.Println("Outro tipo")
}

Exemplo com switch de tipo:

switch v := i.(type) {
case ConcreteType:
    fmt.Println("Isto é ConcreteType", v)
case AnotherType:
    fmt.Println("Isto é AnotherType", v)
default:
    fmt.Println("Tipo desconhecido")
}