gpt4 book ai didi

swift - 我可以通过分配结构体变量来创建 Swift 中自定义对象的 "copy"吗?

转载 作者:行者123 更新时间:2023-11-30 11:45:02 25 4
gpt4 key购买 nike

我有一个想要复制的自定义类,但由于各种原因将其声明为 Struct 并不好。我的问题是,如果我按照以下方式进行“复制”,我是否会得到一个全新的对象,其中每个值(字符串、整数等)完全不被任何其他值引用?说:

newObject = Object()
newObject.name = oldObject.name // This is a String
newObject.rank = oldObject.rank // This is an Int
newObject.date = oldObject.date // This is a Date
...

谢谢!

最佳答案

StringDateInt 都是结构体,在赋值时复制。它们是直接存储的,而不是通过引用间接存储的,因此您永远无法让两个 Int 指向同一个 Int(导致别名/状态共享),因为 Int 未间接引用。

我会将其包装在初始化程序或实例方法中(也许.deepCopy()?)

您必须注意的是对象(类的实例)的意外别名,这些对象被引用(复制引用,而不是它们指向的对象)。在这种情况下,您必须对所有传递引用的对象递归调用 deepCopy

关于swift - 我可以通过分配结构体变量来创建 Swift 中自定义对象的 "copy"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48938244/

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