如果映射包含一個帶有鍵 x 的條目,則 a[x] 是帶有鍵 x 的映射元素,并且 a[x] 的類型是 M 的元素類型但map[K]V 類型的映射 a 上的索引表達式,用于特殊形式的賦值或初始化v, ok := a[x]產(chǎn)生一個額外的無類型布爾值。我還在學習圍棋。它是融入語言的“語法特征”并且“僅在使用此語法時起作用”,即調(diào)用v := a[x]并v, ok := a[x]表示為 AST 中不同類型的節(jié)點,如MapGetAndCheckExistsNode(m, k, v, ok)vs MapGet(m, k, v)?或者這是使用“正?!钡?Go 語法實現(xiàn)的,索引函數(shù)以某種方式知道它的輸出是否稍后被“解構”?是否可以使用語法強制索引表達式返回元組或結(jié)構s.v以及s.ok字段s := a[x]?
1 回答

jeck貓
TA貢獻1909條經(jīng)驗 獲得超7個贊
作為語言本身的一部分,這是一個任意規(guī)則。它用于避免類型轉(zhuǎn)換的恐慌:
t,?ok?:=?x.(T)
或者檢查地圖中是否確實存在鍵:
v,?ok?:=?m[k]
或者檢查接收是否有效:
x,?ok?:=?<-ch
用你自己的函數(shù)是不可能做到的,只有在語言設計者插入的這些特殊情況下。
- 1 回答
- 0 關注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消