Módulo 04 · Interfaces y errores — Lección 1 de 3 · ~11 min
Interfaces
Un contrato, no una clase
Ya tienes structs (Walker, Booking) y métodos colgados de ellos. Una interface es la siguiente idea: una lista con nombre de firmas de métodos — un contrato. Cualquier cosa que tenga esos métodos satisface la interface, y puede usarse en cualquier lugar donde esa interface se espere.
En Swift escribirías un protocol y luego dirías struct Walker: Pricer. Go es distinto en un aspecto grande, y es lo que hay que interiorizar en esta lección: no hay palabra clave implements. Nunca declaras que un tipo satisface una interface. Si el tipo tiene los métodos, la satisface — automáticamente, en silencio, en todas partes.
A esto se le llama satisfacción estructural o implícita. La interface describe una forma; cualquier tipo con esa forma encaja.