条件函数什么都不返回,语法正确? iOS版

时间:2015-11-06 18:50:30

标签: ios swift parse-platform

而是写一个大" if"声明,我想知道这个语法是否正常? 如果条件不受尊重,我只使用单词return。

@IBAction func SignUpAction(sender: AnyObject) {

    if passwordField1.text != passwordField2.text {
        // password dont match
        // Pop error
        return
    }

    let user = PFUser()
    user.username = emailField.text
    user.password = passwordField1.text

    user.signUpInBackgroundWithBlock { (suceeded: Bool, error: NSError?) -> Void in
        if error == nil {
            // Log the user
        }else{
            // Display an error
        }
    }
}

或者我需要这样写:

@IBAction func SignUpAction(sender: AnyObject) {

    if passwordField1.text == passwordField2.text {

        let user = PFUser()
        user.username = emailField.text
        user.password = passwordField1.text

        user.signUpInBackgroundWithBlock { (suceeded: Bool, error: NSError?) -> Void in
            if error == nil {
                // Log the user
            }else{
                // Display an error
            }
        }
    }else{
        // Error : password dont match
       // Pop error
    }
}

如果需要尝试许多条件,第一种语法会更清晰,但我不确定编写这样的代码是否合适。感谢

解决方案:(带有无线应答和Apple Doc on"后卫": 第一个声明需要像这样写:

guard passwordField1.text == passwordField2.text else {
        print("pop error")
        return
    }

1 个答案:

答案 0 :(得分:3)

实际上,我使用第一种语法,表示为guard语句:

guard passwordField1.text == passwordField2.text else { return }

这正是guard的用途:如果条件不满足,请不要再继续了。一系列多个guard语句(因为必须满足多个条件)是非常标准的。