无法调用非函数类型“ Int”的值

时间:2019-02-06 08:50:09

标签: ios swift casting

我在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'

有人可以看到我在这里应该做什么吗?

我看过几篇相关的文章,但没有明确的解决方案。

1 个答案:

答案 0 :(得分:1)

这是一个很好的例子,如果您不遵守变量名必须以小写字母开头的命名约定,将会发生什么情况。

您要在

中声明一个不是函数的局部变量Int
let (CustomType, Int) = arg1

它隐藏Int结构。 不要这样做。声明变量总是以小写字母开头。

let (customType, int) = arg1

无论如何,两个变量都未使用。

不要注释编译器可以推断的类型

x = Int(y)