Avatar ·

为什么在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`,复制就会按预期工作。