2017-03-16 56 views
1

此測試如果地圖中含有一定價值:多值函數和if語句

_, ok := myMap["foo"] 

有if語句使用此檢查在某種程度上,這樣我可以鏈接多個測試在一起嗎?

if ("foo" in map1) || ("bar" in map2) { 
// do stuff 
} 

回答

1

這應該大致是你要找的。

if _, ok := myMap["foo"]; ok { 
    //do stuff 
} 

你應該能夠在括號鏈中的多個語句,這樣就可以有一次爲多個檢查。

if (_, okfoo := myMap["foo"]; _, okbar := myMap["bar"]; okfoo || okbar) { 
    // do stuff 
} 

+0

只知道它看起來可怕... ;-)我希望的一個表達式(每個地圖)直接檢查返回值,並完全保存分配。 感謝您回答! –

+0

我完全同意這看起來很可怕。對於那個很抱歉。 – Graytr

+0

也許沿着(myMap [「foo」])[1]的方向行事? – Graytr