为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中,类型和指向类型的指针都可以实现接口吗?

在 Go 中,类型和指向类型的指针都可以实现接口吗?

Go
婷婷同学_ 2021-06-18 18:05:17
例如在以下示例中:type Food interface {    Eat() bool}type vegetable_s struct {    //some data}type Vegetable *vegetable_stype Salt struct {    // some data}func (p Vegetable) Eat() bool {    // some code}func (p Salt) Eat() bool {    // some code}是否Vegetable和Salt两者都满足Food,即使一个是指针,另一个直接是结构?
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

通过编译代码很容易得到答案:

prog.go:19: invalid receiver type Vegetable (Vegetable is a pointer type)

该错误基于以下规范要求:

接收器类型必须采用 T 或 *T 形式,其中 T 是类型名称。T 表示的类型称为接收器基类型;它不能是指针或接口类型,并且必须在与方法相同的包中声明。

(强调我的)

声明:

type Vegetable *vegetable_s

声明一个指针类型,即。Vegetable没有资格作为方法接收者。


查看完整回答
反对 回复 2021-06-21
  • 2 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信