第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

缺少地圖鍵的模板比較運(yùn)算符

缺少地圖鍵的模板比較運(yùn)算符

Go
猛跑小豬 2021-12-13 10:46:47
在嘗試鍵入不存在鍵的映射時(shí),我無(wú)法找到有關(guān)返回值類型的任何文檔。從 Go 錯(cuò)誤跟蹤器來(lái)看,它似乎是一個(gè)特殊的“無(wú)價(jià)值”我正在嘗試使用該eq函數(shù)比較兩個(gè)值,但如果鍵不存在,則會(huì)出現(xiàn)錯(cuò)誤例子:var themap := map[string]string{}  var MyStruct := struct{MyMap map[string]string}{themap}{{if eq .MyMap.KeyThatDoesntExist "mystring"}}  {{.}}{{end}結(jié)果是 error calling eq: invalid type for comparison由此我假設(shè) nil 值不是""像 Go 本身那樣的空字符串。有沒(méi)有一種簡(jiǎn)單的方法來(lái)比較可能不存在的地圖值和另一個(gè)值?
查看完整描述

2 回答

?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

使用索引函數(shù):


{{if eq (index .MyMap "KeyThatDoesntExist") "mystring"}}

  {{.}}

{{end}}

index當(dāng)鍵不在映射中時(shí),該函數(shù)返回映射值類型的零值。問(wèn)題中地圖的零值是空字符串。


查看完整回答
反對(duì) 回復(fù) 2021-12-13
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

可以先檢查key是否在map中,如果有才進(jìn)行比較。您可以檢查另一個(gè){{if}}操作或{{with}}設(shè)置管道的操作。


使用{{with}}:


{{with .MyMap.KeyThatDoesntExist}}{{if eq . "mystring"}}Match{{end}}{{end}}

使用另一個(gè){{if}}:


{{if .MyMap.KeyThatDoesntExist}}

    {{if eq .MyMap.KeyThatDoesntExist "mystring"}}Match{{end}}{{end}}

請(qǐng)注意,您可以添加{{else}}分支以涵蓋其他情況。全面覆蓋{{with}}:


{{with .MyMap.KeyThatDoesntExist}}

    {{if eq . "mystring"}}

        Match

    {{else}}

        No match

    {{end}}

{{else}}

    Key not found

{{end}}

全面覆蓋{{if}}:


{{if .MyMap.KeyThatDoesntExist}}

    {{if eq .MyMap.KeyThatDoesntExist "mystring"}}

        Match

    {{else}}

        No match

    {{end}}

{{else}}

    Key not found

{{end}}

請(qǐng)注意,在所有完整覆蓋變體中,如果 key 存在但關(guān)聯(lián)的 value 是"",則也將導(dǎo)致"Key not found".


查看完整回答
反對(duì) 回復(fù) 2021-12-13
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)