Interfejs w Go definiuje zestaw sygnatur metod — umowę na temat zachowania. Kluczową cechą jest to, że interfejsy są spełniane niejawnie: każdy typ posiadający te metody automatycznie spełnia interfejs, bez jawnej deklaracji "implements". To strukturalne, oparte na duck-typingu podejście jest charakterystyczne i potężne.
Definiowanie i niejawna implementacja interfejsu
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
