加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 04:35:00 所属栏目:百科 来源:网络整理
导读:我在 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’与’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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读