go - 将if语句转换为简短陈述

时间:2016-07-19 09:25:42

标签: go

我有很多if语句

anotherName : ="ABC"

if len(dict) > 0 {
    if _, ok := dictA["Name"]; ok {
        if fName, ok := dataDict["Name"]; ok {
            if fName== "SAM" {
                if len(dict) > 1 {
                    mainDict[anotherName] = dict
                }
            }
        }
    }
}

我不想使用这么多if语句。我想使用运算符,但在这种情况下我无法在这里使用它们。

任何人都可以让我知道。

1 个答案:

答案 0 :(得分:1)

我能想到的一些选择。不确定您是否更喜欢它或它是否适用于您的代码:

1)在一个函数中(在循环中使用break):

anotherName : ="ABC"
if len(dict) = 0 {
    return
}
if _, ok := dictA["Name"]; !ok {
    return
}
if fName, ok := dataDict["Name"]; !ok {
    return
}
if fName== "SAM" && len(dict) > 1 {
   mainDict[anotherName] = dict
}

2)不使用ok检查,但检查nil

anotherName : ="ABC"

if len(dict) > 0 && dictA["Name"] != nil && dataDict["Name"] != nil && dataDict["Name"] == "SAM" && len(dict) > 1 {
  mainDict[anotherName] = dict
}

也许您还可以取消对len(dict) > 0len(dict) > 1

的支票之一