我是个新手,尤其是闭包,当我练习求和函数时,我可以增加2个值,但是当我尝试做3个或更多的值时,就会出现错误。
例句:增加两个有用的价值。
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))有什么原因我们不能这样做吗..你能建议我用闭包的方法吗?
谢谢
发布于 2017-06-12 10:40:08
在这种情况下,编译器不能正确地再现结果的类型。你应该帮点忙:
var calculate: (Int,Int,Int) -> Int
calculate = { Int($0+$1+$2) }
print(calculate(5,8,90)) // "103\n"发布于 2017-06-12 09:58:56
我改变了你的密码。
var calculate: (Int,Int,Int)->Int
calculate = {($0+$1)+$2}
print(calculate(5,8,90))->你需要给圆括号。
https://stackoverflow.com/questions/44496524
复制相似问题