小编典典

解开if语句中的多个可选

swift

我想在一个if语句中解开两个可选变量,但是编译器抱怨在使用密码常量的运算符之后期望的表达式。可能是什么原因?

    if let email = self.emailField?.text && let password = self.passwordField?.text
    {
        //do smthg
    }

在Swift中完成。


阅读 285

收藏
2020-07-07

共1个答案

小编典典

好消息。 Swift 1.2 (XCode 6.3 Beta,15/2/9发布)现在支持在一行中展开多个可选组件。

不再需要元组/开关模式匹配。实际上,它与您最初建议的语法非常接近(感谢您的收听,Apple!)

if let email = emailField?.text, password = passwordField?.text {

}

另一件事是您还可以添加where“保护条件”:

var email: String? = "baz@bar.com"
var name: String? = "foo"

if let n = name, e = email where contains(e, "@") {
  println("name and email exist, email has @")
}

参考:XCode 6.3
Beta发行说明

2020-07-07