闭包内的return语句

时间:2019-02-09 19:25:29

标签: ios swift closures

在闭包内部执行以下return语句具有任何意义。他们会如期返回吗?

fetchAPI() { (result, error) in
    if error != nil {
        // Print error
        return
    } else {
        if result?.data != nil {
            if (result?.success)! {
                // Do stuff
            }
        } else {
            // Print error
            return
        }
    }
}

2 个答案:

答案 0 :(得分:0)

还有其他Swift流程控制语句,可以使您的代码更具可读性,而不是嵌套if。

fetchAPI() { result, error in
    // Check that error is nil
    guard error == nil else {
        // print error
        return
    }

    // Check that result is not nil and result.success is true
    guard let result = result, result.success else {
        // print error
        return
    }

    // Now you have a valid response. Do something with it
}

答案 1 :(得分:0)

不,它们没有意义。

两个return语句都是多余的,可以省略。闭包中的return语句退出闭包,而不是函数。