简化Swift 4逻辑

时间:2019-01-05 15:35:17

标签: swift

在此处将newb完整地添加到Swift 4。如何用Swift更紧凑地编写以下内容?

    if myVar != nil {

        if !myVarList.contains(myVar!) {

            myVarList.append(myVar!)
        }
    }

我尝试搜索guard的示例,但找不到任何内容。我认为Swift可以让我更紧凑地处理nil检查,但不确定与嵌套条件组合使用时如何进行检查。

1 个答案:

答案 0 :(得分:1)

只需使用if let来有条件地解开可选内容并在同一行中进行其他检查,逗号就代表布尔型AND运算符

if let item = myVar, !myVarList.contains(item) {
   myVarList.append(item)
}

如果在检查后将使用(未包装的)可选选项,请不要写!= nil

guard仅在对false的评估退出范围的情况下才有用

func foo() {
    guard let item = myVar, !myVarList.contains(item) else { return }
    myVarList.append(item)
}