我在Swift(4.2)中有这段代码:
let totalQNbr = theArray.reduce(0) {
(total, arg1) -> Int in
let (CustomType, Int) = arg1
let y = arg1.0.val_Number,
x:Int = Int(y) // Problem line !!!
return total + x
}
在我进行常用类型转换的那一行上,注释了//问题行!!!
我收到此错误消息:
Cannot call value of non-function type 'Int'
有人可以看到我在这里应该做什么吗?
我看过几篇相关的文章,但没有明确的解决方案。
答案 0 :(得分:1)
这是一个很好的例子,如果您不遵守变量名必须以小写字母开头的命名约定,将会发生什么情况。
您要在
中声明一个不是函数的局部变量Int
。
let (CustomType, Int) = arg1
它隐藏Int
结构。 不要这样做。声明变量总是以小写字母开头。
let (customType, int) = arg1
无论如何,两个变量都未使用。
不要注释编译器可以推断的类型
x = Int(y)