轉到福利局在這裏 - 我遇到的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