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

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

檢查映射中是否存在鍵作為“if 語句”條件

檢查映射中是否存在鍵作為“if 語句”條件

Go
BIG陽 2023-07-31 16:48:43
我正在解決代碼戰(zhàn)爭中的 katas 問題,并偶然發(fā)現(xiàn)了一種檢查映射是否具有與給定鍵關(guān)聯(lián)的值的方法。下面的代碼是我自己的虛擬示例,如果函數(shù)參數(shù)等于 10,則返回(以非常低效的方式)“bar”字符串。我很難理解if這里的聲明是如何運作的。func Bar(x int) string {    var m = make(map[string]int)    if x == 10 {        m["bar"] = x    }    if _, ok := m["bar"]; ok {        return "bar"    }    return "foo"}如果我的if聲明看起來像這樣(刪除_)if ok := m["bar"];ok {代碼無法運行,但我不知道為什么。我不知道這種模式是否合適以及其背后的機制。目前它看起來像是一個骯臟的把戲,因為if它只計算布爾表達式。所以我的理論是,不知_何故,if聲明認為它有一個布爾條件,但如果有人引導(dǎo)我走向正確的方向,我將非常感激
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

有兩種方法可以從地圖中讀取值。首先是:

x:=m[key]

這將檢查 是否m有值key,如果有,它將分配該值的副本x。如果不是,x則其值為零。因此,如果m是一個,比如說,map[int]int,那么x如果 key 不在映射中,則值為 0。m這與給定鍵為 0沒有區(qū)別。

您可以使用第二種形式的地圖讀?。?/p>

x, ok:=m[key]

如果m具有值key,則這將設(shè)置x為該值,并設(shè)置ok為 true。如果m沒有值key,則這將設(shè)置x為零值,并設(shè)置okfalse。

在 中if _,ok:=m["bar"]; ok_忽略從映射返回的值,但現(xiàn)在可以從 的值得知映射是否包含該鍵ok。if 語句首先評估賦值,然后檢查條件,這里是布爾值ok。

簡而言之,if 語句檢查鍵是否在映射中,如果是,則執(zhí)行某些操作。


查看完整回答
反對 回復(fù) 2023-07-31
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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