Swift 是一种类型安全的语言,这意味着它会尽量避免不同类型的数据混合使用。Swift 提供了多种数据类型,每种都有其特定的用途。理解这些数据类型及其用途对于编写高效、无错误的代码至关重要。
基本数据类型
整型
整型用于表示整数。Swift 中有多种整型,每种都适用于不同的场景:
Int
:通常用于表示整数,长度取决于平台。Int8
:8位有符号整数,取值范围为 -128 到 127。Int16
:16位有符号整数,取值范围为 -32768 到 32767。Int32
:32位有符号整数,取值范围为 -2147483648 到 2147483647。Int64
:64位有符号整数,取值范围为 -9223372036854775808 到 9223372036854775807。
示例:
var age: Int = 25 let maxInt8: Int8 = 127
浮点型
浮点型用于表示带有小数部分的数字。Swift 提供了两种浮点类型:
Float
:单精度浮点数,占用32位。Double
:双精度浮点数,占用64位。
示例:
var pi: Double = 3.14159 let radius: Float = 5.0
布尔型
布尔型用于表示逻辑值,只有两种可能的取值:true
和 false
。
示例:
var isStudent: Bool = true let isAdult: Bool = false
字符串
字符串用于表示文本信息。Swift 的字符串支持 Unicode 编码,并且可以很容易地处理多语言文本。
创建字符串的方式有两种:
- 使用双引号:
var name = "Alice"
- 使用
String
类型:
let greeting = String("Hello, world!")
数组
数组是一种存储一系列相同类型元素的数据结构。Swift 提供了类型安全的数组,这意味着你不能向数组中添加与数组元素类型不匹配的数据。
声明数组的方式:
var numbers: [Int] = [1, 2, 3, 4, 5] let emptyArray: Array<Int> = []
字典
字典是一种存储键值对的数据结构。每个键都是唯一的,并且与一个值关联。
声明字典的方式:
var scores: [String: Int] = ["Alice": 85, "Bob": 92] let emptyDictionary: Dictionary<String, Int> = [:]
复合数据类型
元组
元组是一种将多个不同类型的值组合成单一复合值的方式。元组中的值可以是任意类型,并且可以被命名或不命名。
创建元组的方式:
let person = (name: "Alice", age: 30) let point = (x: 10, y: 20)
枚举
枚举是一种定义一组有限数量的常量值的方式。枚举中的所有成员都属于同一个类型,这使得它们可以相互比较。
定义枚举的方式:
-- -------------------- ---- ------- ---- ------- - ---- ------ ---- ------- ---- --------- ---- -------- ---- ------ - --- ------ ------- - -------
结构体
结构体是一种用户自定义的数据类型,它可以包含属性和方法。结构体是值类型,这意味着当你复制一个结构体时,实际上是复制了它的值,而不是引用。
定义结构体的方式:
struct Person { var name: String var age: Int } var alice = Person(name: "Alice", age: 30) let bob = alice // 这里复制了 alice 的值
类
类也是一种用户自定义的数据类型,它与结构体相似,但有一些关键的区别。类是引用类型,这意味着当一个类实例被赋给另一个变量时,实际上是将引用传递给了另一个变量。此外,类支持继承,而结构体不支持。
定义类的方式:
-- -------------------- ---- ------- ----- ------ - --- ----- ------ --- ---- --- ---------- ------- ---- ---- - --------- - ---- -------- - --- - - --- ----- - ------------ -------- ---- --- --- --- - ----- -- ------ ----- ---
以上就是 Swift 中常用的数据类型。了解这些数据类型及其特性对于编写清晰、高效且类型安全的 Swift 程序至关重要。通过合理选择和使用这些数据类型,你可以有效地管理和操作各种类型的数据。