diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 36 |
1 files changed, 36 insertions, 0 deletions
@@ -0,0 +1,36 @@ +package main + +import "fmt" + +type flyer interface { + fly() string + dive() string +} + +type printer func(s string) string + +func (p printer) fly() string { + return p("I'm flying!") +} + +func (p printer) dive() string { + return p("I'm diving!") +} + +func printAndReturn(s string) string { + fmt.Println(s) + return s +} + +type bird struct { + flyer +} + +func main() { + bf := bird{ + flyer: printer(printAndReturn), + } + bf.fly() + + bs.fly() +} |
