加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift教程07-基本数据类型(三)元组类型tuple

发布时间:2020-12-14 02:17:09 所属栏目:百科 来源:网络整理
导读:元组乃何方神圣? 元组,tuple原出自数据库中的一种概念,就是关系型数据库中的一条记录或者说一行; 一个元组可以包含多个字段,每个字段可以是不同的类型,就像我们从数据库取出一条学生的信息,包括这些 ("张三",0001,"男","1391111****") 姓名,编号,性别,手机号

元组乃何方神圣?

元组,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,Int))


(5)访问元组的元素值,使用类似于数组的下标,可以支持多级下标,类似于2维,多维数组的下标


如 访问 stu 元组中的第二个元素,"1100"  就是  stu.1,[下标从 0开始]


访问 stu 元组中 第一个元素 即  student元组 中的第二个元素 ("男"),则需要使用二级 下标    stu.0.1  


(6)打印元组,及元组中的单个元素


插值符号 : / (元素值) 则可以将该 元素值表示在 字符串中

var a = 1

println("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 student = ("张三","",10010)

//把元组的元素拆分到各个变量中去
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)")

定义一个键值对类型的元组类型

var stu4:(sNa:String,sSe:String,sI:Int)

//按顺序赋值,需要一一对应
stu4 = ("刘七",1213)


//不按顺序,按 key赋值,可忽略顺序

stu4 = (sSe:"女",sI:1112,sNa:"刘八")

//使用Key访问元组中的元素
println(stu4.sNa)


(9)元组的其他用法:

作为函数的返回值,则函数可以返回多个值了

在Switch 语句中使用

原文地址:http://blog.csdn.net/yangbingbinga

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读