猿问

go :返回类型与声明不同的函数如何在 golang 中正常工作

我是 golang 编程的新手,我正在学习 go 中的接口。


当我用谷歌搜索时,我在 ardan labs 偶然发现了这个博客。下面的代码片段可以在清单 5中找到。完整的代码在 go playground here


type 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 中工作?


繁花不似锦
浏览 111回答 1
1回答

三国纷争

该error类型是接口类型。这是接口的声明:type error interface {    Error() string}errorString是错误接口的实现。这就是为什么它适用于errorString类型。您可以在此处找到有关接口的更多详细信息
随时随地看视频慕课网APP

相关分类

Go
我要回答