40 lines
467 B
Go
40 lines
467 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
type cat struct{}
|
|
|
|
type dog struct{}
|
|
|
|
type person struct {
|
|
}
|
|
|
|
type speaker interface {
|
|
speak() //只要实现了speak方法的变量都是speaker类型
|
|
}
|
|
|
|
func (c cat) speak() {
|
|
println("喵喵喵!")
|
|
}
|
|
|
|
func (d dog) speak() {
|
|
println("汪汪汪")
|
|
}
|
|
|
|
func (p person) speak() {
|
|
fmt.Println("aaa")
|
|
}
|
|
func da(x speaker) {
|
|
x.speak() //挨打了就要叫
|
|
}
|
|
|
|
func main() {
|
|
var c1 cat
|
|
var d1 dog
|
|
var e1 person
|
|
da(c1)
|
|
da(d1)
|
|
da(e1)
|
|
|
|
}
|