仓颉编程语言入门 – 元组类型
元组(Tuple)可以将多个不同的类型组合在一起,成为一个新的类型。元组类型使用 (T1, T2, …, TN) 表示,其中 T1 到 TN 可以是任意类型,不同类型间使用逗号(,)连接。元组至少是二元,例如,(Int64, Float64) 表示一个二元组类型,(Int64, Float64, String) 表示一个三元组类型。
一. 特点
-
元组类型里面的元素可以是任意的
-
元组的长度是固定的,即一旦定义了一个元组类型的实例,它的长度不能再被更改。
-
元组类型是不可变类型,即一旦定义了一个元组类型的实例,它的内容不能再被更新
二. 定义格式
var 元组名 = ( 元素1 , 元素2 …)
var tuple = (1,false,"你好")
三. 元组类型的字面量
1. 指定元素类型
格式 : var 元组名 : ( 元素1类型 , 元素2类型 …) = ( 元素1 , 元素2 …)
let x: (Int64, Float64) = (3, 3.141592)
let y: (Int64, Float64, String) = (3, 3.141592, "PI")
2. 获取元素的方式
下标取值
元组支持通过 t[index] 的方式访问某个具体位置的元素,其中 t 是一个元组,index 是下标,并且 index 只能是从 0 开始且小于元组元素个数的整数类型字面量,否则,编译报错。下面的例子中,使用 pi[0] 和 pi[1] 可以分别访问二元组 pi 的第一个元素和第二个元素。
main() {
var pi = (3.14, "PI")
println(pi[0])
println(pi[1])
}
输出结果
3.140000
PI
ps : 元组不能够被直接循环遍历
3. 如何遍历一个元素为元组的列表?
main() {
let array = [(1, 2), (3, 4), (5, 6)]
for ((x, y) in array) {
println("${x}, ${y}")
}
}
ps : x,y对应的;类型必须相同 , 即(1, 2), (3, 4), (5, 6)中每一个元组0下标位置的元素都是int形 , 可遍历
如下x所对应的位置0下标处类型不相同则不可遍历
var arr = [("你好",10),(4,4)]
for ((x, y) in arr) {
println("${x}, ${y}")
}