Swift基本运算符

1、一元、二元和三元运算符

一元运算符对单一操作对象操作(如-a)。一元运算符分前置运算符和后置运算符,前置运算符需紧跟在操作对象之前(如!b),后置运算符需紧跟在操作对象之后(例如c!)。备注:在Java/C没有类似c!的语法, 在Swift中用在Optional类型取值。

二元运算符操作两个操作对象(如2 + 3),是中置的,因为它们出现在两个操作对象之间。

三元运算符操作三个操作对象,和 C 语言一样,Swift 只有一个三元运算符,就是三目运算符(a ? b : c)

2、赋值运算符

3、算术运算符

Swift支持所有数字类型的四个标准算术运算符:

加法(+)、减法(-)、乘法(*)、除法(/)

String串联也支持加法运算符:

剩余(%)运算符

余数运算符(a % b)计算出b的多少倍数将放入a中,并返回剩余的值(称为余数

对于b的负值,b的符号被忽略。这意味着a % b和a % -b总是给出相同的答案

其余运算符(%)在其他语言中也称为模运算符。然而,它在swift中负数的行为意味着,严格来说,这是一个余数,而不是模态操作。

4、比较运算符

Swift支持以下比较运算符:

等于(a == b)、不等于(a != b)、大于(a > b)、小于(a < b)、大于或等于(a >= b)、小于或等于(a <= b)

每个比较运算符都返回一个Bool值,以指示该语句是否为真

比较运算符通常用于条件语句,例如if语句:

如果两个元组具有相同的类型和相同数量的值,您可以比较它们。元组从左到右进行比较,一次一个值,直到比较发现两个不相等的值。对这两个值进行了比较,比较的结果决定了元组比较的总体结果。如果所有元素都是相等的,那么元组本身就是相等的。但是只有当运算符可以应用于相应元组中的每个值时,才能将元组与给定运算符进行比较。例如元组(String, Bool)无法与<运算符进行比较,因为<运算符不能应用于Bool值。并且Swift标准库只包括小于七个元素的元组的元组比较运算符。要比较带有七个或更多元素的元组,需要自己实现比较运算符。

4、合并空值运算符(??)

合并空值运算符 a ?? b 如果可选项 a 有值则展开,如果没有值,是 nil,则返回默认值 b

表达式 a 必须是一个可选类型,表达式 b 必须与 a 的存储类型相同

合并空值运算符,实际上是三元运算符作用到 Optional 上的缩写 a != nil ? a! : b

如果 a 的值是非空,b的值将不会被考虑,也就是合并空值运算符是短路的

5、区间运算符

闭区间运算符:闭区间运算符(a...b)定义一个包含从a到b(包括a和b)的所有值的区间,b必须大于等于a。 闭区间运算符在迭代一个区间的所有值时是非常有用的,如在for-in循环中:

半开区间运算符:半开区间(a..<b)定义一个从a到b但不包括b的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。

单边范围:区间运算符有另一种形式,用于尽可能向一个方向持续的范围——例如,一个范围,包括数组从索引2到数组末尾的所有元素。在这些情况下,您可以省略范围运算符一侧的值。这种范围被称为单边范围,因为运算符只有一侧的值。

6、逻辑运算符

逻辑运算符修改或组合布尔逻辑值true和false。Swift支持基于C的语言中的三个标准逻辑运算符:

&&    逻辑与。如果运算符两侧都为 TRUE 则为 TRUE

||       逻辑或。 如果运算符两侧至少有一个为 TRUE 则为 TRUE

!       逻辑非。布尔值取反,使得true变false,false变true

7、位运算符

位运算符用来对二进制位进行操作,~, &, |, ^ 分别为取反,按位与与,按位与或,按位与异或运算

8、运算符的优先级

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

Swift 运算符优先级 (从高到低):

位运算符——乘除法运算符——加减法运算符——区间运算符——类型转换运算符——nil的聚合运算——比较运算符——逻辑与运算符——逻辑或运算符——三元运算符——赋值运算符

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift 的运算符和C以及OC的运算符相比并没有太大的变化,但是有很好的补充。 赋值运算符(因为元组的使用更加丰...
    雪_晟阅读 3,907评论 0 0
  • 术语 运算符分为一元、二元和三元运算符: 一元运算符对单一操作对象操作(如 -a)。一元运算符分前置运算符和后置运...
    CoderLGL阅读 3,811评论 0 1
  • 运算符是检查、改变、合并值的特殊符号或短语。例如,加号+将两个数相加(如let i = 1 + 2)。更复杂的运算...
    穷人家的孩纸阅读 14,999评论 3 6
  • 基本运算符 运算符是检查、改变、合并值的特殊符号或短语。例如,加号(+)将两个数相加(如 let i = 1 + ...
    xiaofu666阅读 4,617评论 0 0
  • Swift中文文档 运算符分为一元、二元和三元运算符 一、赋值运算符 赋值运算符: = 例如: (a = b), ...
    伯wen阅读 3,923评论 0 0