编译以下Swift代码时(在Sample.swift中):
import Cocoa
class Sample {
func doSomething() {
var stringArray = Array<String>()
stringArray.append("AAA")
addToString(stringArray)
stringArray.append("CCC")
}
func addToString(myArray:Array<String>) {
myArray.append("BBB")
}
}
我在线上发现以下错误&#39; myArray.append(&#34; BBB&#34;)&#39;:
Immutable value of type 'Array<String>' only has mutating members named 'append'
如何修复代码以允许调用此可变方法?
非常感谢提前
答案 0 :(得分:9)
如果要修改数组,则必须在inout参数中指定它,例如func addToString(inout myArray:Array<String>)
。然后,当你调用该功能时,你必须添加&amp;在你的论证前面,表明它可以被函数修改。您的代码将如下所示:
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")
}
}
您可能需要查看this page上的输入输出参数。