【发布时间】:2018-07-29 07:10:35
【问题描述】:
我正在尝试理解 Go 中的接口。我是这样写的:
package main
import "fmt"
type Animal struct {
Name string
Ability string
}
type AbilityShower interface {
ShowAbility() string
}
func (a Animal) ShowAbility() string {
return fmt.Sprintf("%s can %s", a.Name, a.Ability)
}
func main() {
var Dog Animal = Animal{
Name: "Dog",
Ability: "Walk",
}
Dog.ShowAbility()
}
但是当我使用go run main.go 运行时,控制台中什么也没有出现。我做错了什么?
【问题讨论】:
-
可能值得注意的是,采用单一方法
interface的 API 可以重写为采用函数类型。见stackoverflow.com/a/63557675/12817546。
标签: function go interface stdout