Skip to content

Instantly share code, notes, and snippets.

@khajavi
Created December 24, 2016 11:19
Show Gist options
  • Save khajavi/03823f934c5291ae7cd1a83479eedbc6 to your computer and use it in GitHub Desktop.
Save khajavi/03823f934c5291ae7cd1a83479eedbc6 to your computer and use it in GitHub Desktop.
Duck Typing Example in Golang
package main
import "fmt"
type Speaker interface {
Say(string)
}
type Person struct {
name string
}
func (p *Person) Say(message string) {
fmt.Println(p.name + ":" , message)
}
func SpeakAlphabet(via Speaker) {
via.Say("abcdefgh")
}
func main() {
mat := new(Person)
mat.name = "Mat"
SpeakAlphabet(mat)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment