亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go 中的索引表達式是否根據上下文更改其返回類型?

Go 中的索引表達式是否根據上下文更改其返回類型?

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

1 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

作為語言本身的一部分,這是一個任意規則。它用于避免類型轉換的恐慌:

t,?ok?:=?x.(T)

或者檢查地圖中是否確實存在鍵:

v,?ok?:=?m[k]

或者檢查接收是否有效:

x,?ok?:=?<-ch

用你自己的函數是不可能做到的,只有在語言設計者插入的這些特殊情況下。

查看完整回答
反對 回復 2023-03-29
  • 1 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號