元組相當于關(guān)系數(shù)據(jù)庫中的一條記錄,它將多個任意數(shù)據(jù)類型的值合并為一個值。
元組類型的值的語法格式為:(元素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
元組只要用于多個相關(guān)值的臨時組合竞膳,比如用作函數(shù)的返回值航瞭。
如果需要持久化地存儲復雜的數(shù)據(jù),不適合使用元組坦辟,可以考慮使用類或結(jié)構(gòu)體刊侯。
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