我试图更快地理解闭包,并且尝试使用完成处理程序创建一个愚蠢的函数,该函数返回一个值,但该值无处可做...
这是我所做的。
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 ()
当我尝试将此返回值保存在变量中时,它只返回了一对弯曲的括号。
我应该如何使用此返回值?
答案 0 :(得分:2)
您要将值返回到productToString
函数中,但没有对其进行任何其他操作。
func productToString(num: Int,num2: Int,completion: (Int)->String){
let result = num * num2
completion(result) // <--- Your return value ends up here
}
如果要打印结果,则必须通过productToString
函数再次将其返回。
func productToString(num: Int,num2: Int,completion: (Int)->String) -> String {
let result = num * num2
return completion(result)
}
旁注:打印的空括号是一个空元组,等效于Swift中的Void
。