php中文网

Go 中接口实现的隐式机制:结构体何时被视为实现了接口?

php中文网

Go 中接口实现解读

你在提问中提到了 Go 中接口实现的问题。首先,即使没有明确声明实现接口,也可以像 main1 中那样实现接口。这是因为 Go 语言支持隐式接口,只要结构体实现了接口中的所有方法,就视为实现了该接口。

像 main 中那样将变量 f 指定为接口类型 Fruit,则会进行接口检查,确认实现的结构体确实实现了该接口。因此:

  • 结构体 Apple 实现了 Fruit 接口。
  • main1 中未进行接口检查,因此无法确定是否实现了 Fruit 接口。
  • main 中进行了接口检查,确认 f 所指向的结构体实现了 Fruit 接口。

参考资料:

  • [Go 语言设计与实现 4.2 接口](https://go.dev/blog/interfaces)

以上就是Go 中接口实现的隐式机制:结构体何时被视为实现了接口?的详细内容,更多请关注php中文网其它相关文章!