Avatar ·

为什么在 Swift 中应该选择结构体 (struct) 而不是类 (class)?

大家好!我刚开始学习 Swift,有一个问题困扰着我。我看到 Swift 中既有类 (class) 也有结构体 (struct)。乍一看,它们非常相似:都可以创建属性、方法和初始化器。但到处都写着结构体是 "value types" (值类型),而类是 "reference types" (引用类型)。我不太明白这在实践中意味着什么。 我写了一个简单的例子。创建了一个类 `CarClass` 和一个结构体 `CarStruct`,都有一个属性 `model`。然后我将类的实例赋值给一个新变量,并修改了 "副本" 中的 model。结果原始对象中的 model 也改变了!但结构体没有发生这种情况。代码如下: ```swift class CarClass { var model = "Tesla" } struct CarStruct { var model = "Tesla" } let car1 = CarClass() let car2 = car1 // 这不是副本,而是指向同一对象的引用 car2.model = "BMW" print(car1.model) // 输出 "BMW" — 原始对象改变了! let structCar1 = CarStruct() var structCar2 = structCar1