为什么我们有时使用 - >在swift中完成处理程序的void,但有时候不行?

时间:2015-06-01 04:05:58

标签: swift

我看了两个教程。第一个是关于swift中的基本完成处理程序。导师显示了此代码的示例:

NetworkStream.BeginWrite

第二个教程是关于HTTP请求,代码如下所示:

func isTextValid(input: String, completion: (result: Bool) -> Void) {

    if (input == "Hello") {
        completion(result: true)
    }else{
        completion(result:false)
    }
}


isTextValid("Hello", { (result) -> Void in
    if (result == true) {
        println("People say Hello")
    }else{
        println("People do not say hello")
    }
})

你可以看到第一行代码没有像第一篇教程那样返回void,为什么?

什么是返回无效?为什么我们要输入return void?

1 个答案:

答案 0 :(得分:4)

使用void是可选的,就像声明一个带或不带void的函数一样,你可以用或不用声明一个完成处理程序

func noReturn() -> Void

相同
func noReturn()

声明时用于完成句柄:

func isTextValid(input: String, completion: (result: Bool) -> Void) 

等于

func isTextValid(input: String, completion: (result: Bool) -> ()) 

调用时的完成句柄:

(result) -> Void in

等于

(result) in