2.运算符
Swift 支持大部分标准 C 语言的运算符,分为一元、二元和三元运算符。
- 一元运算符对单一操作对象操作(如 -a)。一元运算符分前置运算符和后置运算符,前置运算符需紧跟在操作对象之前(如 !b),后置运算符需紧跟在操作对象之后(如 i++)。
- 二元运算符操作两个操作对象(如 2 + 3),是中置的,因为它们出现在两个操作对象之间。
- 三元运算符操作三个操作对象,和 C 语言一样,Swift 只有一个三元运算符,就是三目运算符(a ? b : c)。
1.赋值运算符: (=)
let a = 10
2.算术运算符: 加法(+)、减法(-)、乘法(*)、除法(/)
1 + 2 ; 5 - 3; 2 * 3; 10.0 / 2.5;
【说明】:加法运算符也可用于 String 的拼接。例如:
"hello, " + "world";
3.求余运算符: (%)
9 % 4; //结果为1
【说明】:不同于 C 语言和 Objective-C,Swift 中是可以对浮点数进行求余。例如:
8 % 2.5; //结果为0.5
4.自增和自减运算:自增(++)和自减(--)
- 当 ++ 前置的时候,先自増再返回;当 ++ 后置的时候,先返回再自增。
【注意】:it will be removed in Swift 3,可以不看。
5.一元负号运算符: (-)
- 一元负号(-)写在操作数之前,中间没有空格。比如:-3
6.一元正号运算符: (+)
- 不做任何改变地返回操作数的值。
7.组合赋值运算符
- Swift 提供把其他运算符和赋值运算(=)组合的组合赋值运算符,组合加运算(+=)是其中一个例子。
8.比较运算符
- 所有标准 C 语言中的比较运算都可以在 Swift 中使用: ==、!=、>、<、>=、<=
- Swift 提供恒等(===)和不恒等(!==)这两个比较符来判断两个对象是否引用同一个对象实例(具体看类和结构体章节)。
- 当元组中的值可以比较时,也可以使用这些运算符来比较它们的大小。例如,因为 Int 和 String 类型的值可以比较,所以类型为 (Int, String) 的元组也可以被比较。相反,Bool 不能被比较,也意味着存有布尔类型的元组不能被比较。
(1, "zebra") < (2, "apple"); //true (3, "apple") < (3, "bird"); //true (4, "dog") == (4, "dog"); //true
9.三元运算符:问题 ? 答案 1 : 答案 2
- 表示根据 问题成立与否作出二选一的操作。如果 问题 成立,返回 答案 1 的结果;反之返回 答案 2 的结果。
10.空合运算符:空合运算符(a ?? b)
- 对可选类型 a 进行空判断,如果 a 包含一个值就进行解封,否则就返回一个默认值 b。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。
- 空合运算符是对以下代码的简短表达方法:a != nil ? a! : b
11.区间运算符
- 闭区间运算符(a...b)定义一个包含从 a 到 b(包括 a 和 b)的所有值的区间。a 的值不能超过 b。
- 半开区间(a..<b)定义一个从 a 到 b 但不包括 b 的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。
for index in 1...5 { print("\(index) * 5 = \(index * 5)"); //执行5次 }
12.逻辑运算
- 逻辑非(!a)
- 逻辑与(a && b)
- 逻辑或(a || b)
无善无恶心之体,
有善有恶意之动,
知善知恶是良知,
为善去恶是格物。