2017-03-16 9 views
1

マップが特定の値が含まれている場合、このテストの場合:多値関数やステートメント

_, 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