Swift:迭代数组字典而不复制任何东西

时间:2018-02-07 15:20:00

标签: arrays swift

我有一个像[String:[MyClass]]的字典,我想访问字典中每个数组中的每个值,但没有任何复制

我可以使用for..in执行此操作吗?或者forEach方法可以完成这项工作吗?

1 个答案:

答案 0 :(得分:2)

您可以使用for..in正常迭代,而不必担心值复制机制。如果您对幕后发生的事情感兴趣,请查看Swift阵列采用的 copy-on-write 行为。

它的要点是:当您修改该数组时,只会在内存中创建数组的副本(或实现写时复制的任何其他数据结构)。如果它没有变异,那么两个数组实例仍将使用相同的底层内存。