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")
}