У меня есть структура и класс:
class FooClass {
var someValue: String = "123"
}
struct TestStruct {
var aValue: Int = 12
var clsValue: FooClass
}
И я хочу глубокую копию для TestStruct, но следующий код также изменит clsValue в переменной a:
var a = TestStruct(aValue: 10, clsValue: FooClass())
var b = a
b.clsValue.someValue = "abc"
Я знаю, что значение класса в структуре копируется только «ссылка», но я хочу глубокую копию для этого класса, когда я назначаю a для b.
Я знаю, что c ++ может определить конструктор копирования или переопределить =оператор.Доза Свифт поддержки что-то в этом роде?