为什么在Swift中应该选择结构体而不是类?
大家好!我刚开始学习Swift,有些困惑。我知道结构体 (struct) 和类 (class) 都可以有属性和方法。似乎唯一的区别是结构体是值类型 (value types),而类是引用类型 (reference types)。但在实践中,我不完全理解何时该用哪个。
下面是一个例子。我正在写一个简单的笔记应用。我创建了一个类 Note:
```swift
class Note {
var title: String
var content: String
init(title: String, content: String) {
self.title = title
self.content = content
}
}
var note1 = Note(title: "购物", content: "买牛奶")
var note2 = note1
note2.title = "紧急事务"
print(note1.title) // 输出 "紧急事务" — 这不是我期望的!
```
我以为我在创建副本,但结果两个变量引用的是同一个对象。这导致数据在意外的地方被修改。如果我把 `class` 换成 `struct`,复制就会按预期工作。