Swift将对象添加到数组会追加副本而不是引用? [复制]
Posted
技术标签:
【中文标题】Swift将对象添加到数组会追加副本而不是引用? [复制]【英文标题】:Swift adding object to array appends a copy instead of a reference? [duplicate] 【发布时间】:2021-11-09 22:27:41 【问题描述】:示例代码:
struct test
var itest: Int?;
var tests : [test] = [];
var t = test();
tests.append(t)
t.itest = 99;
print(tests[0].itest)
print(t.itest)
生产
nil
Optional(99)
因此,append 命令似乎创建了 t 的副本,而不是它的引用。 如果数组包含 t 的引用,则两个打印输出都必须是 itest=99。
【问题讨论】:
这能回答你的问题吗? Is Swift Pass By Value or Pass By Reference 在 Swift 中,只有类是引用类型。结构是值类型。 【参考方案1】:结构不是您可能认为的“对象”。这是一个价值。当您分配一个值时,它会被复制。这是设计使然。
【讨论】:
谢谢澄清以上是关于Swift将对象添加到数组会追加副本而不是引用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionview 将数据追加到数组 Swift
Vue.js 是不是具有将持久对象的副本添加到重复数组的内置方法