Swift 如何在完成处理程序中使用返回值?
我试图更好地理解swift中的闭包,并尝试创建一个愚蠢的函数,该函数带有一个返回值的完成处理程序,但该值不起作用 这就是我所做的Swift 如何在完成处理程序中使用返回值?,swift,function,completionhandler,Swift,Function,Completionhandler,我试图更好地理解swift中的闭包,并尝试创建一个愚蠢的函数,该函数带有一个返回值的完成处理程序,但该值不起作用 这就是我所做的 func productToString(num: Int,num2: Int,completion: (Int)->String){ let result = num * num2 completion(result) } let numberToString = productToString(num: 3, num2: 6) {
func productToString(num: Int,num2: Int,completion: (Int)->String){
let result = num * num2
completion(result)
}
let numberToString = productToString(num: 3, num2: 6) { (res) -> String in
return "string:\(res)"
}
print(numberToString) // print statement prints ()
当我试图将这个返回值保存在一个变量中时,它只返回了一对曲线括号
如何使用此返回值?您正在将该值返回到
productToString
函数中,但没有对其执行任何其他操作
func productToString(num: Int,num2: Int,completion: (Int)->String){
let result = num * num2
completion(result) // <--- Your return value ends up here
}
旁注:打印的空括号是一个空元组,相当于Swift中的
Void
。您将值返回到productToString
函数中,但不使用它执行任何其他操作
func productToString(num: Int,num2: Int,completion: (Int)->String){
let result = num * num2
completion(result) // <--- Your return value ends up here
}
旁注:打印的空括号是一个空元组,相当于Swift中的
Void
。productToString没有返回值,值为Void
。完成回调的概念是异步的。可以在打印
之后调用完成回调。productToString没有返回值,值为Void
。完成回调的概念是异步的。完成回调可以在打印
之后调用。