【发布时间】:2019-05-06 11:41:10
【问题描述】:
在 Swift 中,集合是通过 copy on write 行为隐式实现的;但是,我们不会在自定义类型中免费获得它。
我的主要问题是:
不管如何实现,为我们的自定义类型做一个好主意吗?为什么/为什么不?
此外:
根据this answer,即使是 Swift 标准库提供的内置类型(但不是集合)也没有实现它,这可能表明我们不必这样做它。即便如此,这样做有什么好处吗?
【问题讨论】:
-
这取决于您的自定义类型。 – 如果您可以使用 COW 在现有类型的基础上进行构建,那么这肯定是更安全、更简单的方法。
-
感谢@MartinR。 “这取决于您的自定义类型”这就是我想知道的,是否有标准来决定它?希望不要太宽泛...
-
可能没有万能的答案。你可以说得更详细点吗?你的类型拥有什么样的数据和数量?您是否需要值语义(否则使用类)?是否可以使用现有的COW类型?
-
@MartinR 例如,我有一个结构(没有偶函数的模型),其中包含大约 20 个各种类型的属性,例如
Array、Double、Bool,并且在某些点是我复制它。在这一点上,为它实现牛会是一个好主意吗? -
我会首先评估您是否真的需要值语义。如果没有:使用一个类,你就完成了。
标签: swift copy-on-write