简化这个Swift 4逻辑

简化这个Swift 4逻辑,swift,Swift,在这里完成Swift 4的新订单。如何用Swift更简洁地书写以下内容 if myVar != nil { if !myVarList.contains(myVar!) { myVarList.append(myVar!) } } 我试图搜索guard的示例,但什么也找不到。我认为Swift允许我更简洁地处理nil检查,但不确定在与嵌套条件组合时如何进行检查。只要使用就可以了,如果让展开可选条件并在同一行中执行另一个检

在这里完成Swift 4的新订单。如何用Swift更简洁地书写以下内容

    if myVar != nil {

        if !myVarList.contains(myVar!) {

            myVarList.append(myVar!)
        }
    }

我试图搜索
guard
的示例,但什么也找不到。我认为Swift允许我更简洁地处理
nil
检查,但不确定在与嵌套条件组合时如何进行检查。

只要使用
就可以了,如果让
展开可选条件并在同一行中执行另一个检查,逗号表示布尔
运算符

if let item = myVar, !myVarList.contains(item) {
   myVarList.append(item)
}
如果在检查后要使用(未包装)选件,请不要写入
!=无

guard
仅在对
false
的计算退出范围时才有用

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

谢谢,这很有效。为什么我不需要编写
let item=myVar即展开..
如果让
在成功时展开可选文件。请阅读,你真的应该阅读。