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

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