例如,在以下示例中:
type Food interface {
Eat() bool
}
type vegetable_s struct {
//some data
}
type Vegetable *vegetable_s
type Salt struct {
// some data
}
func (p Vegetable) Eat() bool {
// some code
}
func (p Salt) Eat() bool {
// some code
}
即使一个是指针而另一个直接是结构,
Vegetable
和Salt
是否都满足Food
? 最佳答案
答案很容易通过compiling the code获得:
prog.go:19: invalid receiver type Vegetable (Vegetable is a pointer type)
该错误基于以下的specs要求:
(强调我的)
声明:
type Vegetable *vegetable_s
声明一个指针类型,即。
Vegetable
不适合作为方法接收者。关于pointers - 在Go中,类型和指向类型的指针都可以实现接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17902127/