值类型与引用类型的区别
Swift 中数据类型分为值类型和引用类型,二者在内存和赋值行为上有明显区别。
值类型(Value Types)
值类型在赋值或传参时,会复制数据本身,修改副本不影响原始值。结构体(struct)、枚举(enum)、基本数据类型(如 Int、String)都是值类型。
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)是引用类型。
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1 = Person(name: "小明")
var person2 = person1
person2.name = "小红"
print(person1.name) // 输出 小红,person1 被修改
理解两者区别有助于合理设计数据结构和避免潜在错误。
相关内容
- 什么是 Swift? Swift 是 Apple 推出的现代编程语言,专为 iOS、macOS、watchOS 与 tvOS 应用开发而设计,语法简洁、安全高效,广泛应用于移动开发与...
- Swift 与 Objective-C 的比较 Swift 与 Objective-C 都是 Apple 推出的开发语言,前者强调安全与现代化,后者历史悠久且成熟。了解两者异同有助于更好地选择开发工具。
- 安装 Xcode 与 Playground 本章介绍如何安装 Xcode 和使用 Swift Playground 进行基础练习,适合 Swift 初学者快速上手,无需搭建复杂环境即可体验代码编写与运行。
- Swift 的发展历史和现状 Swift 作为 Apple 推出的现代编程语言,经历了快速的发展和演进,现已成为 iOS、macOS 等平台主流开发语言,拥有活跃的社区和广泛的应用。
- 变量与常量 本章介绍 Swift 中变量与常量的定义与使用,帮助理解数据存储与修改的基本概念,是掌握 Swift 编程的基础。
- 数据类型 本章讲解 Swift 中的基本数据类型,包括整数、浮点数、布尔值和字符串,帮助理解变量和常量的数据存储与操作方式。