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

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

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

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

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

1 回答

?
撒科打諢

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

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

x:=m[key]

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

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

x, ok:=m[key]

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

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

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


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

添加回答

舉報(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)