Junior
¿Cómo se puede verificar el tipo de interfaz en Go?
sobes.tech AI
Respuesta de la IA
En Go, para verificar el tipo de interfaz, a menudo se utilizan afirmación de tipo o conmutador de tipo.
Si tienes una variable de tipo interfaz, por ejemplo var i interface{}, y quieres verificar si implementa una interfaz específica o si es de un tipo concreto, puedes hacerlo así:
if v, ok := i.(MyInterface); ok {
// i implementa MyInterface, v es el tipo convertido
}
Para verificar varios tipos, es conveniente usar switch de tipo:
switch v := i.(type) {
case MyInterface:
// i implementa MyInterface
case *MyStruct:
// i es un puntero a MyStruct
default:
// otro tipo
}
Si necesitas verificar el tipo de manera más dinámica, puedes usar el paquete reflect:
import "reflect"
t := reflect.TypeOf(i)
if t.Implements(reflect.TypeOf((*MyInterface)(nil)).Elem()) {
// i implementa MyInterface
}
De esta forma, para casos simples, basta con afirmación de tipo o switch de tipo; para casos más complejos, reflection.