编译以下Swift代码时(在Sample.swift中):
import Cocoa class Sample { func doSomething() { var stringArray = Array() stringArray.append("AAA") addToString(stringArray) stringArray.append("CCC") } func addToString(myArray:Array ) { myArray.append("BBB") } }
我在'myArray.append("BBB")'行上收到以下错误:
Immutable value of type 'Array' only has mutating members named 'append'
如何修复代码以允许调用此可变方法?
提前谢谢了
如果要修改数组,则必须将其指定为inout参数,如下所示func addToString(inout myArray:Array<String>)
.然后当你调用函数时,你必须在你的参数前添加&,以表明它可以被函数修改.您的代码看起来像这样:
class Sample { func doSomething() { var stringArray = Array<String>() stringArray.append("AAA") addToString(&stringArray) stringArray.append("CCC") } func addToString(inout myArray:Array<String>) { myArray.append("BBB") } }
您可能需要查看此页面上的输入输出参数.