例如,在以下示例中:

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
}

即使一个是指针而另一个直接是结构,VegetableSalt是否都满足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/

10-12 15:03