元组由N(N >= 0)个任意类型的数据组成, 是一个便捷的临时数据结构,用于替代部分过于简单的struct
场景。
let a = () // 空元组 a is Void
let fruit = ("apple") // fruit只有一个元素
let point = (x : 29, y : 29) // point有2个元素x和y
1. 访问元组
如果元组的元素被赋予名字,则可以像调用属性一样去调用
let point = (x : 29, y : 30)
print(point.x,point.y) // 29 30
如果元组的元素没有名字,则可以使用下标去调用
let point = (29, 30)
print(point.0,point.1) // 29 30
也可以创建一个新的元组来重命名其元素
let point = (29, 30)
let (x,y) = point
print(x,y)
2. 修改元组
元组和其他类型一样,也是可以修改和赋值的,用法完全相同。
var point = (29, 30)
var (x,y) = point
x = 1 // x == 1, y == 30
point = (2,3)
如果元素声明为常量,则不能修改其元素
let point = (29, 30)
let (x,y) = point
x = 1 // Cannot assign to value: 'x' is a 'let' constant
注意事项:
- 元组很少用来传递,一般当做有限个作用域之间的临时结构,如果需要传递的话建议重命名,闭包同理。
- 不要将元组暴露给OC,即使不会报错,OC也无法使用。