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

go:返回类型与声明不同的函数在golang中如何正常工作,go,Go,我是golang编程新手,正在学习go中的接口 谷歌搜索时,我在阿丹实验室偶然发现了这一点。清单5中有下面的代码片段。完整的代码正在运行中 在新方法中,return语句返回类型为errorString的结构,但函数声明指出该类型应为error。上面的代码不会抛出任何错误。它编译并运行良好 func New(text string) errorString { return errorString{text} } 当我改变了方法如下仍然工作良好 func New(text string)

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

谷歌搜索时,我在阿丹实验室偶然发现了这一点。清单5中有下面的代码片段。完整的代码正在运行中

在新方法中,return语句返回类型为errorString的结构,但函数声明指出该类型应为error。上面的代码不会抛出任何错误。它编译并运行良好

func New(text string) errorString {
    return errorString{text}
}
当我改变了方法如下仍然工作良好

func New(text string) errorString {
    return errorString{text}
}
这种不兼容类型在go中是如何工作的?

错误类型是一种接口类型。以下是接口声明:

type error interface {
    Error() string
}
errorString是错误接口的一个实现。 这就是为什么它适用于errorString类型

您可以找到有关接口的更多详细信息