我看了两个教程。第一个是关于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?
答案 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