我有以下语法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
'
我究竟做错了什么?
默认情况下,函数参数是不可变的,并且 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)