我正在解決代碼戰(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)我走向正確的方向,我將非常感激
檢查映射中是否存在鍵作為“if 語(yǔ)句”條件
BIG陽(yáng)
2023-07-31 16:48:43