gpt4 book ai didi

swift - Array 类型的不可变值只有名为 'append' 的可变成员

转载 作者:搜寻专家 更新时间:2023-10-31 08:03:32 25 4
gpt4 key购买 nike

我有一个简单的案例,我调用了一些列表并尝试附加新值。

class User{

var list:Array<String> = []

func getList()->Array<String>{
return list
}
}

var user = User()
user.getList().append("aaa") // <-- ERROR
user.list.append("aaa") // OK

Immutable value of type Array<String> only has mutating member named 'append'

为什么如果 user.getList() 不起作用返回 list .

我知道没有像 Java 那样的封装,但这看起来很奇怪。


[编辑]

问候@MichaelDautermann 回答:

var user = User()                        // {["c"]}
var temp:Array<String> = user.getList() // ["c"]
temp += ["aaa"] // ["c", "aaa"]

var z:Array<String> = user.getList() // ["c"]

最佳答案

Your "getList" function is returning an immutable copy of the list array ,这就是为什么您不能通过 getList() 函数检索到的数组进行修改的原因。

但是您可以在访问成员变量时修改原始数组,正如您在“OK”案例中所发现的那样。

基本上,您可能需要附加到原始“list”数组,或者为您的“User append”函数”类。

关于swift - Array<String> 类型的不可变值只有名为 'append' 的可变成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25707510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com