当前位置 : 主页 > 手机开发 > 其它 >

swift – 迭代数组并更新值.错误:’@lvalue $T5’与’Int’不同

来源:互联网 收集:自由互联 发布时间:2021-06-11
我在 Swift中有以下语法: func basicFunction(anArray:[Int], aValue:Int) - Int { for (var i = 0; i5; ++i) { if anArray[i] == 0 { anArray[i] = aValue //I get an error in XCode } } return 1} 我收到以下Xcode错误:’@lvalue $T5’
我在 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错误:’@lvalue $T5’与’Int’不同

我究竟做错了什么?

默认情况下,函数参数是不可变的,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)
网友评论