一个字符串如何可以是接口类型{}



我目前在C++之后正在学习go。每次面对interface时,我都会卡住。例句:

s := []interface{}{"a", "b", "c"}

string怎么可能是接口?

我不知道在go中引入了什么意义上的接口。还有很多关于接口的疑问。

回答上述问题,特别是提供一些关于接口的学习资源将是伟大的。

Thanks in advance:)

根据定义,接口被定义为一组方法签名。因此,它用于指示哪些方法应该由另一个类型实现。如果接口没有在接口声明体中指定任何方法签名,那么任何有效类型都可以是该接口的类型,因为没有成为该接口的先决条件。

在您的示例中,片包含interface{}类型,这意味着任何类型都可以作为片输入的有效候选。

s := []interface{}{"a", 1, false}

https://tour.golang.org/methods/9是探索和学习go的好地方。

可以把接口看作是一个容器,里面保存着一个值和该值的类型。

当你定义自己的接口时,编译器将确保你赋值(存储在接口中)的方法与你在接口定义中指定的方法相匹配。

空接口,interface{},没有方法,因此可以存储任何值,因为不期望存在任何特定的方法。

如果您还没有,请查看A Tour of Go中的接口部分。

相关内容

  • 没有找到相关文章

最新更新