运行下面的代码会导致编译错误:
不能在返回参数中使用作者(类型 []Person)作为类型 []Namer
为什么不能 Go 编译它?
type Namer interface {
Name() string
}
type Person struct {
name string
}
func (r Person) Name() string {
return r.name
}
func Authors() []Namer {
// One or the other is used - both are not good:
authors := make([]Person, 10)
var authors []Person
...
return authors
声明authors为authors := make([]Namer, 10)orvar authors []Namer会很好,但我不明白为什么编译器不能推断Person是Namer.
喵喵时光机
相关分类