为什么我可以说 CreateLion() 的结果(指向实现 Cat 接口的结构的指针)是 Cat 接口的实例,但我不能说 CreateLion() 是“返回 Cat 的函数”类型界面。”
实现这种行为的标准 Golang 方法是什么?
package main
import "fmt"
func main() {
var lion Cat := CreateLion()
lion.Meow()
// this line breaks. Why?
var cf CatFactory = CreateLion
}
type Cat interface {
Meow()
}
type Lion struct {}
func (l Lion) Meow() {
fmt.Println("Roar")
}
// define a functor that returns a Cat interface
type CatFactory func() Cat
// define a function that returns a pointer to a Lion struct
func CreateLion() *Lion {
return &Lion{}
}
明月笑刀无情
呼如林
12345678_0001
相关分类