duck_dance.go 354 B

1234567891011121314151617181920212223242526272829303132
  1. package main
  2. import "fmt"
  3. type IDuck interface {
  4. Quack()
  5. Walk()
  6. }
  7. func DuckDance(duck IDuck) {
  8. for i := 1; i <= 3; i++ {
  9. duck.Quack()
  10. duck.Walk()
  11. }
  12. }
  13. type Bird struct {
  14. // ...
  15. }
  16. func (b *Bird) Quack() {
  17. fmt.Println("I am quacking!")
  18. }
  19. func (b *Bird) Walk() {
  20. fmt.Println("I am walking!")
  21. }
  22. func main() {
  23. b := new(Bird)
  24. DuckDance(b)
  25. }