mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-11 22:53:43 +08:00
33 lines
354 B
Go
33 lines
354 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
type IDuck interface {
|
|
Quack()
|
|
Walk()
|
|
}
|
|
|
|
func DuckDance(duck IDuck) {
|
|
for i := 1; i <= 3; i++ {
|
|
duck.Quack()
|
|
duck.Walk()
|
|
}
|
|
}
|
|
|
|
type Bird struct {
|
|
// ...
|
|
}
|
|
|
|
func (b *Bird) Quack() {
|
|
fmt.Println("I am quacking!")
|
|
}
|
|
|
|
func (b *Bird) Walk() {
|
|
fmt.Println("I am walking!")
|
|
}
|
|
|
|
func main() {
|
|
b := new(Bird)
|
|
DuckDance(b)
|
|
}
|