Sebuah interface Go mendefinisikan serangkaian tanda tangan metode — sebuah kontrak perilaku. Yang terpenting, interface dipenuhi secara implisit: tipe apa pun yang memiliki metode-metode tersebut secara otomatis memenuhi interface, tanpa deklarasi "implements" eksplisit. Pendekatan structural, duck-typing ini adalah karakteristik dan kekuatan Go.
Mendefinisikan dan secara implisit mengimplementasikan interface
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
