微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐