元组乃何方神圣?
元组,tuple原出自数据库中的一种概念,就是关系型数据库中的一条记录或者说一行;
一个元组可以包含多个字段,每个字段可以是不同的类型,就像我们从数据库取出一条学生的信息,包括这些
("张三",0001,"男","1391111****") 姓名,编号,性别,手机号
这样的类型一次就可以包含我们需要的多个信息.
如今Swift的 也引入了 这种类型, 不得不说 这是Swift的强大之处之一.
元组的定义
(1)定义一个元组并且指定初始值
var student = ("张三","男",10010)
(2)定义一个元组类型,然后赋值
var student2 :(String,String,Int)student2 = ("李四","女",10011)
(3)我们也可以直接把一个元组的值赋值给另一个元组变量
student2 = student
(4)元组的嵌套,即元组中的元素也可以是元组
var stu = (student , "1100")var stu2 = (("王五",1001,"男"),student2,110)嵌套元组类型的定义
var yunzu:(Int ,String, (String,String,Int))
(5)访问元组的元素值,使用类似于数组的下标,可以支持多级下标,类似于2维,多维数组的下标
如 访问 stu 元组中的第二个元素 ,"1100" 就是 stu.1,[下标从 0开始]
访问 stu 元组中 第一个元素 即 student元组 中的第二个元素 ("男") ,则需要使用二级 下标 stu.0.1
(6)打印元组,及元组中的单个元素
插值符号 : / (元素值) 则可以将该 元素值表示在 字符串中
如
var a = 1println("a的值是 \(a)")则 可以直接输出 a对应的值 ,类似于 C语言中的 %d ,%s格式化的符号
如下,你可以在字符串中 来 插入 元素的值
println("student元组的是:\(student)")println("student元组的第一个元素是\(student.0)")println("stu元组的第一个元素(元组)中的第一个元素是\(stu.0.0)")当然你也可以直接打印其值,不需要 使用引号
println(student)println(student.0)println(stu.0.0)
(7)元组的拆分
//把元组的元素拆分到各个变量中去var (name,sex,id) = student//直接使用变量名来访问println(name)println("编号是 :\(id)")我们还可以在拆分的过程中去掉我们不想要的元素,使用 下划线 _ 代替,下划线在 循环,变量绑定,函数定义等地方还会遇到
var (name1,sex1,_) = student那样,sex1之后的那个元素就被忽略了
(8)以键值对的形式使用元组,元组中的每一个变量可以有一个名字,这个名字类似于字典的key键
直接使用key来访问元组中的变量
var stu3 = (sName:"赵六",sSex:"男",sID:1111)//访问该元组中的元素println(stu3.sName)println("元组中的编号是\(stu3.sID)")定义一个键值对类型的元组类型
//按顺序赋值,需要一一对应stu4 = ("刘七","女",1213)
//不按顺序,按 key赋值,可忽略顺序stu4 = (sSe:"女",sI:1112,sNa:"刘八")//使用Key访问元组中的元素println(stu4.sNa)
(9)元组的其他用法:
作为函数的返回值,则函数可以返回多个值了
在Switch 语句中使用
原文地址:
,真正的爱,应该超越生命的长度、心灵的宽度、灵魂的深度