迭代数组并更新值。错误:' @lvalue $ T5'与' Int'不相同

时间:2014-10-10 04:17:06

标签: swift

我在Swift中有以下语法:

func basicFunction(anArray:[Int], aValue:Int) -> Int {
    for (var i = 0; i<5; ++i)
    {
        if anArray[i] == 0
        {
            anArray[i] = aValue  //I get an error in XCode
        }
    }
    return 1
}

我得到以下Xcode error'@lvalue $T5'与'Int'不相同

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:7)

默认情况下,函数参数是不可变的,Swift编译器会提供可怕的错误消息。

无论如何,因为anArray是不可变的,所以你无法修改它。这就是您收到错误消息的原因。声明它为inout

func basicFunction(inout anArray:[Int], aValue:Int) -> Int {
    for (var i = 0; i<5; ++i) {
        if anArray[i] == 0 {
            anArray[i] = aValue
        }
    }
    return 1
}

在数组参数前面用&调用它:

basicFunction(&someArray, 99)