Swift错误"不可变值只有变异成员"

时间:2014-07-28 10:31:07

标签: macos swift

编译以下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'

如何修复代码以允许调用此可变方法?

非常感谢提前

1 个答案:

答案 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上的输入输出参数。