Un'interfaccia Go definisce un insieme di firme di metodi — un contratto di comportamento. In modo cruciale, le interfacce vengono soddisfatte implicitamente: qualsiasi tipo che abbia quei metodi soddisfa automaticamente l'interfaccia, senza nessuna dichiarazione esplicita "implements". Questo approccio strutturale, basato su duck-typing, è distintivo e potente.
Definizione e implementazione implicita di un'interfaccia
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
