转到福利局在这里 - 我遇到的Go代码如下位,我没写GoLang:包含在括号内的属性的语义意义?
if tc, ok := tng.(ThingClasser); ok {
//... do some stuff ...
}
我不明白的tng.(ThingClasser)
语义。
在某些方面,这看起来像一个方法调用 - 即有两个变量(ec
,ok
)坐在那里准备接受多个返回值。
但是,tng.(ThingClasser)
本身看起来像它的一个属性访问,而不是方法调用。
然而,ThingClasser
左右的皱纹是我以前从未见过的皱纹。另外,如果它很重要,ThingClasser
符号在这个项目的其他地方定义为一个接口,所以我认为这可能是一些附近的语法糖,它实现了一个接口 - 但后来这两个返回值让我困惑。
谷歌搜索还没有发现任何具体的东西,但这是谷歌难以接受的事情之一。
有没有人知道GoLang中这个调用/语法是什么,并且有可能在相关的手册页面指向我,这样我可以RTFM?
[Go language spec](https://golang.org/ref/spec)相对简单。这是检查这些事情的最佳地点。搜索'。(''快速找到“类型断言”规范 – JimB