学习如何在可选的展开上使用防护

时间:2018-03-14 18:40:21

标签: swift

我一直在尝试编写一个简单的函数来添加两个变量。

func add(X: Int?, Y: Int?) -> Int? {
    guard let X != nil, Y != nil else
    { return nil }
    return X + Y
}

我不断收到以下2条错误消息:

  

“条件中的模式匹配需要'case'关键字”

  

“条件中的变量绑定需要初始值设定项”

有人可以帮我修复此代码吗?

1 个答案:

答案 0 :(得分:3)

您希望guard成为:

guard let X = X, let Y = Y else {
    return nil
}

使用guard let时,您需要分配,而不是条件。每个变量都需要自己的let