【问题标题】:Swift adding object to array appends a copy instead of a reference? [duplicate]Swift将对象添加到数组会追加副本而不是引用? [复制]
【发布时间】: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。

【问题讨论】:

标签: swift


【解决方案1】:

结构不是您可能认为的“对象”。这是一个价值。当您分配一个值时,它会被复制。这是设计使然。

【讨论】:

  • 谢谢澄清
猜你喜欢
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多