我是 golang 编程的新手,我正在学习 go 中的接口。当我用谷歌搜索时,我在 ardan labs 偶然发现了这个博客。下面的代码片段可以在清单 5中找到。完整的代码在 go playground heretype errorString struct { s string}func New(text string) error { return errorString{text}}在 New 方法中,return 语句返回一个类型的结构,errorString但函数声明说类型应该是error. 上面的代码不会抛出任何错误。它编译并且工作正常。当我如下更改方法时,它仍然可以正常工作。func New(text string) errorString { return errorString{text}}这种不兼容的类型如何在 go 中工作?
1 回答
三国纷争
TA贡献1804条经验 获得超7个赞
该error类型是接口类型。这是接口的声明:
type error interface {
Error() string
}
errorString是错误接口的实现。这就是为什么它适用于errorString类型。
您可以在此处找到有关接口的更多详细信息
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消