Swift闭包添加超过2个值

时间:2017-06-12 09:55:43

标签: swift

我是swift的新手,特别是关闭,当我练习sum函数时,我可以添加2个值,但是当我尝试为3个或更多值执行时,我会收到错误

例如:  添加2个有效的值

var calculate: (Double,Double)->Double
calculate = {$0+$1}
print(calculate(4,3)) 

但是这个给出了错误

var calculate: (Int,Int,Int)->Int

calculate = {$0+$1+$2} 

print(calculate(5,8,90))

我们有什么理由不能执行此操作..你能否建议我使用闭包

来做到这一点

由于

2 个答案:

答案 0 :(得分:1)

在这种情况下,编译器不能正确地再现结果类型。你应该帮助一点:

var calculate: (Int,Int,Int) -> Int
calculate = { Int($0+$1+$2) }
print(calculate(5,8,90)) // "103\n"

答案 1 :(得分:0)

我改变你的代码。

var calculate: (Int,Int,Int)->Int

calculate = {($0+$1)+$2} 

print(calculate(5,8,90))

- >你需要给出圆括号。