Junior — Middle
¿Cómo se puede determinar si una estructura determinada implementa una interfaz dada?
sobes.tech AI
Respuesta de la IA
En Go, la implementación de una interfaz se verifica de manera implícita: si un tipo contiene todos los métodos declarados en la interfaz, automáticamente implementa esa interfaz.
Para determinar si una estructura implementa una interfaz dada, se puede:
- Intentar asignar una instancia de la estructura a una variable de tipo interfaz — si la compilación tiene éxito, significa que la estructura implementa la interfaz.
- Usar una verificación estática con _var _:
var _ MyInterface = (*MyStruct)(nil)
Si este código compila sin errores, significa que MyStruct implementa la interfaz MyInterface.
Ejemplo:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// implementación
}
// Verificación de implementación de interfaz
var _ MyInterface = (*MyStruct)(nil)
De esta manera, en Go no es necesario indicar explícitamente la implementación de una interfaz — basta con implementar todos sus métodos.