Sobes.tech
Junior — Middle

¿Cómo indicar al compilador que una clase específica implementa una interfaz determinada?

sobes.tech AI

Respuesta de la IA

En Go, la implementación de interfaces es implícita: si un tipo implementa todos los métodos de una interfaz, se considera automáticamente que implementa esa interfaz. No es necesario indicarlo explícitamente.

Ejemplo:

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}

func (d Dog) Speak() string {
    return "¡Guau!"
}

func main() {
    var s Speaker
    d := Dog{}
    s = d // Dog implementa la interfaz Speaker
    fmt.Println(s.Speak())
}

Si quieres verificar explícitamente que un tipo implementa una interfaz, puedes usar una comprobación de compilación:

var _ Speaker = (*Dog)(nil) // El compilador verificará que *Dog implementa Speaker

De esta manera, en Go, las interfaces se implementan automáticamente cuando los métodos necesarios están presentes.