Sobes.tech
Senior

¿Qué son las interfaces en Go? ¿Cómo implementan los tipos las interfaces?

sobes.tech AI

Respuesta de la IA

En Go, una interfaz es un conjunto de métodos que describen un comportamiento. Un tipo implementa una interfaz si contiene todos los métodos declarados en la interfaz, sin necesidad de indicar explícitamente la implementación de la interfaz.

Esto se llama implementación implícita de interfaces. Gracias a esto, se puede escribir código más flexible y extensible.

Ejemplo:

package main
import "fmt"

type Reader interface {
    Read(p []byte) (n int, err error)
}

type File struct {}

func (f File) Read(p []byte) (n int, err error) {
    // implementación de lectura
    return 0, nil
}

func main() {
    var r Reader
    f := File{}
    r = f // File implementa Reader
    fmt.Println(r)
}

Aquí, el tipo File implementa la interfaz Reader porque tiene un método Read con la firma necesaria.