Basic Operators(基本运算符)
文章目录
Terminology(术语)
Operators are unary(一元的),binary(二元的), or ternary(三元的).
Unary operators: -a , !b , c!(强制展开), a ?? b(用于判断 a 变量/常量 的数值是否是 nil.不为 nil ,则取a 变量或者a 常量本身的值,如果是 nil 则使用b的值替代)
Binary operators: 2 + 3
Ternary operators(only one): a ? b : c
Assignment operator(赋值运算符)
1.assignment operator (a = b)
2.如果赋值的右侧是一个具有多个值的元组,则其元素可以一次分解为多个常量或变量
3.swift中的赋值运算符本身不返回值
Arithmetic Operators(算术运算符)
1.Addition (+)
可以用于字符串的串联
2.Subtraction(-)
3.Multiplication(*)
4.Division(/)
5.Remainder Operator(%)
在swift中是取余运算符而不是取模运算符
a % b,b的符号被忽略
6.Unary Minus Operator(一元减号运算符)
取反
7.Unary Plus Operator(一元加号运算符)
加了没有变化,提供对称性
Compound Assignment Operators(复合赋值运算符)
Comparison Operators(比较运算符)
1.Equal to (a == b)
2.Not equal to (a != b)
3.Greater than (a > b)
4.Less than (a < b)
5.Greater than or equal to (a >=b)
6.Less than to equal to (a <= b)
7.Identity operators (=== and !==) (Structures and Classes)
每一个比较运算符都返回Bool值,不能与Bool值进行比较
8.当元组数据超过7个要自己实现比较运算符
元组之间的比较遵循从左到右的原则
Ternary Conditional Operator(三元条件运算符)
question ? answer1 : answer2
Nil-Coalescing Operator(空合运算符)
(a ?? b)
相当于 a != nil ? a! : b
即如果可选值a包含一个值,则空合运算符将其展开,如果a为空,则返回默认值b
a和b的类型必须匹配
Range Operators(区域运算符)
1.Closed Range Operator(a … b)(闭区间)
2.Half-Open Range Operaotor(a…<b)(包含a不包含b)
3.One-Sided Ranges(单边范围)
Logical Operators(逻辑运算符)
1.Logical NOT (!a)
2.Logical AND (a && b)
3.Logical OR (a || b)