我想在一个if语句中解开两个可选变量,但是编译器抱怨在使用密码常量的运算符之后期望的表达式。可能是什么原因?
if let email = self.emailField?.text && let password = self.passwordField?.text { //do smthg }
在Swift中完成。
好消息。 Swift 1.2 (XCode 6.3 Beta,15/2/9发布)现在支持在一行中展开多个可选组件。
不再需要元组/开关模式匹配。实际上,它与您最初建议的语法非常接近(感谢您的收听,Apple!)
if let email = emailField?.text, password = passwordField?.text { }
另一件事是您还可以添加where“保护条件”:
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发行说明