Go Newb here - 我遇到过以下Go代码,我没有写
$(this).css('color', 'yellow');
我不理解if tc, ok := tng.(ThingClasser); ok {
//... do some stuff ...
}
的语义。
在某些方面,这看起来像一个方法调用 - 即有两个变量(tng.(ThingClasser)
,ec
)坐在那里准备接受多个返回值。
但是,ok
本身看起来像是属性访问,而不是方法调用。
然而,tng.(ThingClasser)
周围的parens是我以前从未见过的皱纹。另外,如果重要的话,ThingClasser
符号在本项目的其他地方被定义为接口,所以我想这可能是围绕实现接口的一些语法糖 - 但是两个回归的价值使我困惑。
有没有人知道GoLang中的这个调用/语法是什么,并且可能指向相关的手册页面,以便我可以RTFM?
答案 0 :(得分:3)
这是一种类型断言。返回的值是1)对象,转换为给定的类型; 2)一个布尔值,表示转换是否成功。 ThingClasser
是要转换为的类型。可以在此处找到文档:https://golang.org/ref/spec#Type_assertions