Et Go grensesnitt definerer et sett med metodesignaturer — en kontrakt for oppførsel. Avgjørende er at grensesnitt tilfredsstilles implisitt: enhver type som har disse metodene tilfredsstiller automatisk grensesnittet, uten eksplisitt "implements"-erklæring. Denne strukturelle, duck-typing-tilnærmingen er særegen og kraftfull.
Definering og implisitt implementering av grensesnitt
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
