tuple
tuple只是简单的组合不同对象,tuple对成员个数,成员类型无任何要求,因此tuple可组合任意个数,任何类型对象
应用
func tuple()
{
let food0_1: () = ()
let food0_2 = ()
//let food0_3: () = Void
print("food0_1 = \(food0_1)")
print("food0_2 = \(food0_2)")
let food1_1: (Int) = (5)
let food1_2: (Int) = 8
let food1_3: Int = food1_2
//let food1_4: (Int) = (5: "rice")
print("food1_1 = \(food1_1)")
print("food1_2 = \(food1_2)")
print("food1_3 = \(food1_3)")
//print("food1_1: \(food1_1.0)")
let food2_1: (Int, String) = (5, "rice")
let food2_2 = (id: 8, name: "meat")
let food2_3: (Int, String) = (id: 18, name: "fruit")
print("food2_1 = \(food2_1)")
print("food3_2 = \(food2_2)")
print("food3_3 = \(food2_3)")
print("food2_1: \(food2_1.0), \(food2_1.1)")
print("food2_2: \(food2_2.0), \(food2_2.1)")
print("food2_2: \(food2_2.id), \(food2_2.name)")
print("food2_3: \(food2_3.0), \(food2_3.1)")
//print("food2_3: \(food2_3.id), \(food2_3.name)")
let (id1, name1) = food2_1
let (id2, name2) = food2_2
let (id3, name3) = food2_3
print("food1: \(id1), \(name1)")
print("food2: \(id2), \(name2)")
print("food3: \(id3), \(name3)")
}
output:
food0_1 = ()
food0_2 = ()
food1_1 = 5
food1_2 = 8
food1_3 = 8
food2_1 = (5, "rice")
food3_2 = (8, "meat")
food3_3 = (18, "fruit")
food2_1: 5, rice
food2_2: 8, meat
food2_2: 8, meat
food2_3: 18, fruit
food1: 5, rice
food2: 8, meat
food3: 18, fruit
总结
- tuple类型用()表示
- 空tuple类型为(),字面值常量亦为()
- 只包含1个成员tuple本质为对应类型,(Int)本质为Int,因此对只包含1个成员tuple不可使用索引,亦不可自定义成员名
- 对多个成员tuple,可使用索引访问成员,亦可自定义成员名,但显式指定类型tuple则不允许通过成员名访问
- 可解散tuple把其成员初始化或赋值多个对象