3.2.5 元组类型
元组是一个包含了若干个相关联变量的对象。
1 let people = ("John",33)
由于Swift的类型推导,people被推导为(String,Int)类型的常量。
元组作为一个临时复合值,元组在某些时候是非常有用的。它经常被用作函数返回值,用来传递一些数据。
例如一个用来获取网页的函数,可能会返回一个(Int,String)元组,用来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组,可以让函数的返回信息更加有用:
1 let http404Error = (404,"Not Found") 2 let http200Status =(statusCode:200,description:"OK")
从一个元组中单独取出某一个数据,有两种方式。第一种方式是使用下标:
1 let http404Error = (404,"Not Found") 2 print("errorCode =\(http404Error.0)") // 输出结果为:errorCode = 404
第二种方式如下:
1 let http404Error = (404,"Not Found") 2 let (errorCode,errorMessage) =http404Error 3 print("errorCode =\(http404Error.0)") // 输出结果为:errorCode = 404
如果之前是按照键值对创建的元组,可以按照访问属性的形式来获取相关的值:
1 let people = (name:"John",age:33) 2 print("People's name is\(people.name),and age is \(people.age).")
元组在临时组织数据的时候很有用,但是并不适合创建复杂的数据结构。如果你的数据结构并不是临时使用,请使用类或者结构体而不是元组。
3.2.6 一元、二元和三元运算符
运算符是一种特定的符号或表达式,用来检验、修改或合并变量。例如,用于求和的运算符+,可以对两个数字进行求和,还有逻辑运算符&&等等。
运算符都是一元、二元或三元的。其中一元运算符用于处理单个对象,一元前缀运算符出现在对象前,一元后缀运算符出现在对象的后面。
一元减号和加号
在一个数值的前面,添加的一个-减号,叫作一元减运算符。同样在数值前面添加的+加号,被称为一元加运算符,它们的用法如下:
1 let one = 1 2 let minusOne = -one //结果为:-1 3 let plusOne = +one //结果为:1 4 let anotherOne = -minusOne //结果为:1
一元逻辑非运算符
在数值的前面,添加!感叹号运算符,可以对逻辑数值进行逻辑非运算。
1 let isHero = false 2 let playerType = !isHero //结果为:true
请注意无论是减号、加号还是感叹号运算符,它们与右侧的数值之间不能有空格。
另外++递增和--递减等在Swift1.0版本中出现的一元运算符,在新版的Swift语言中已经被移除,这里就不再进行讲解。
二元运算符
二元运算符是用来对两个目标进行操作的,所以二元运算符常常出现在两个数值之间的位置。如常用的加、减、乘、除数学运算符:
1 3 + 2 //结果为:5 2 3 - 2 //结果为:1 3 3 * 2 //结果为:6 4 3 / 2 //结果为:1
余数运算符( x % y )可以求出多少个 y 的倍数能够刚好放进 x中,并且返回剩下的值,也就是余数。在Swift中您可以对正数、负数进行取余计算:
1 5 % 2 //结果为:1 2 -5 % 2 //结果为:-1
三元条件运算符
三元运算符拥有三个部分,它看起来是这样的:question ? answer1 :answer2。这是一种基于question是真还是假,来选择后面两个表达式之一的便捷写法。如果question是真,则会返回answer1,否则返回answer2。
1 let score = 66 2 let result = (score >= 60) ?"通过考核" : "未通过考核" //结果为:通过考核
三元条件运算符提供了一个非常有效的简写,以根据指定的条件作出相应的选择。
3.2.7 比较运算符
您会经常使用比较运算符,对两个数值进行比较,从而根据比较结果,进行相应的操作。Swift支持所有C语言的标准比较运算符。每个比较运算符都会返回一个Boolean值,来表示语句是否为真:
1 2 > 1 //结果为:true 2 2 < 1 //结果为:false 3 2 >= 1 //结果为:true 4 2 <= 1 //结果为:false 5 2 == 1 //结果为:false 6 2 != 1 //结果为:true
比较运算符通常被用在if条件语句当中:
1 let workingAge = 18 2 if workingAge >= 15 3 { 4 print("享受15天年假") 5 }
拥有同样值数量的元组也可以进行比较,前提是元组中的值是可以比较的。元组以从左到右的顺序,进行值大小的比较,直到找到两个不相等的值为止。如果两个元组的所有值都相同,则两个元组被认为是相等的:
1 (2,3) > (1,3) //结果为:true 2 ("Class1",98) >("Class2",54) //结果为:false 3 (7,"Sunday") == (7,"Sunday") //结果为:true
一个人写书,难免会有不足和纰漏,欢迎大家通过这个邮箱:coolketang@163.com
将你的意见和建议告诉我们,感谢!