教程 swift tutorial

值类型与引用类型的区别

Swift 中数据类型分为值类型和引用类型,二者在内存和赋值行为上有明显区别。

值类型(Value Types)

值类型在赋值或传参时,会复制数据本身,修改副本不影响原始值。结构体(struct)、枚举(enum)、基本数据类型(如 Int、String)都是值类型。

swift
struct Point {
    var x: Int
    var y: Int
}

var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
print(p1.x)  // 输出 0,p1 不受影响

`

引用类型(Reference Types)

引用类型在赋值时,复制的是引用,多个变量指向同一实例,修改会影响所有引用。类(class)是引用类型。

swift
class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1 = Person(name: "小明")
var person2 = person1
person2.name = "小红"
print(person1.name)  // 输出 小红,person1 被修改

理解两者区别有助于合理设计数据结构和避免潜在错误。