元组相当于关系数据库中的一条记录,它将多个任意数据类型的值合并为一个值。
元组类型的值的语法格式为:(元素1, 元素2, ..., 元素n)。
let turple = ("张三", 18, true)
// let turple: (String, Int, Bool) = ("张三", 18, true)
如果想要访问元组中的元素,有以下几种方式:
1.使用索引值访问(索引值从0开始)
turple.0
turple.1
turple.2
2.为元组中的元素指定名字,然后使用指定的名字访问。
let turple2 = (name: "张三", age: 18, isMarried: true)
turple2.name
turple2.age
turple2.isMarried
let turple3: (name: String, age: Int, isMarried: Bool) = ("张三", 18, true)
turple3.name
turple3.age
turple3.isMarried
(3)把元组中的元素分解成多个变量或常量,然后使用变量名或常量名访问。
此外,可以使用这种方式同时声明并初始化多个变量或常量。
let (name, age, isMarried) = ("张三", 18, true)
name
age
isMarried
如果只需要访问元组中的部分元素,可以使用下划线_代替那些不需要被访问的元素的名字或其对应的变量或常量。
let turple4 = (name: "张三", _: 18, isMarried: true)
turple4.name
turple4.isMarried
let turple5: (name: String, _: Int, isMarried: Bool) = ("张三", 18, true)
turple5.name
turple5.isMarried
let (name2, _, isMarried2) = ("张三", 18, true)
name2
isMarried2
元组只要用于多个相关值的临时组合,比如用作函数的返回值。
如果需要持久化地存储复杂的数据,不适合使用元组,可以考虑使用类或结构体。
func readLineFromFile() -> (isEOF: Bool, readLine: String) {
// 从文件中读一行
return (false, "This is the third line")
}
/*
可以使用元组方便地交换两个变量的值。
*/
var str1 = "Hello"
var str2 = "Swift"
(str1, str2) = (str2, str1)
str1
str2