【问题标题】:multi-value functions and if statements [duplicate]多值函数和 if 语句
【发布时间】:2017-03-16 04:38:35
【问题描述】:

这会测试地图是否包含某个值:

_, ok := myMap["foo"]

有没有办法在 if 语句中使用此检查,以便我可以将多个测试链接在一起?

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

【问题讨论】:

    标签: go


    【解决方案1】:

    这应该是您要查找的大致内容。

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

    您应该能够在括号中链接多个语句,以便一次可以进行多项检查。

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

    【讨论】:

    • 只是它看起来很糟糕...... ;-) 我希望有一个表达式(每个地图)直接检查返回值并完全保存分配。谢谢你的回答!
    • 我完全同意这看起来很可怕。对此感到抱歉。
    • 也许类似于 (myMap["foo"])[1] 的东西会起作用?
    • 我不相信(_, ok := myMap["foo"]; ok == true) 是有效的语法;你需要去掉括号,或者更好的是,做_, ok := myMap["foo"]; ok
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    相关资源
    最近更新 更多