基本运算符

术语

按操作对象数分为一元、二元和三元运算符:

  • 一元:前置运算符!a 、后置运算符b!
  • 二元:1 + 2
  • 三元:Swift 只有一个三元运算符,三目运算符(a ? b : c)

赋值运算符

  • 初始化 let a = 1; let (x, y) = (1, 2)
  • 更新值 var b = 2; b = 3

与 C 语言和 Objective-C 不同,Swift 的赋值操作并不返回任何值。所以下面语句是无效的:

if x = y {
    // 此句错误,因为 x = y 并不返回任何值
}

算数运算符

  • 四则运算:加法(+)、减法(-)、乘法(*)、除法(/)

与 C 语言和 Objective-C 不同的是,Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Swift 的溢出运算符来实现溢出运算(如 a &+ b)。

  • 求余运算: (a % b), 公式 a = (b × 倍数) + 余数,在对负数 b 求余时,b 的符号会被忽略。这意味着 a % b 和 a % -b 的结果是相同的。
9 % 4   // 等于 1
-9 % 4   // 等于 -1
9 % -4  //等于 1
  • 一元负号运算符、一元正号运算符: 负数 -1,正数 +1(+号可以省略)

组合赋值运算符

把其他运算符和赋值运算(=)组合,如(+=)

比较运算符

  • 等于(a == b)
  • 不等于(a != b)
  • 大于(a > b)
  • 小于(a < b)
  • 大于等于(a >= b)
  • 小于等于(a <= b)
    比较运算返回的结果为布尔值

三元运算符

使用方法与 C 和 OC 中条件表达式相同(a ? b : c)

空合运算符

a ?? b 等同于 a != nil ? a! : b,其中 a 必须为可选类型,b 的类型为 a 的值类型

区间运算符

Swift 提供了几种方便表达一个区间的值的区间运算符。

  • a...b: 数学上的闭区间[a,b],包含 a,b
  • a..<b:数学上的半开区间区间[a,b),只包含 a
  • a...:单侧区间 [a,+\infty] 还有例如...a 表示[-\infty, a] 、..<a表示[-\infty, a)

逻辑运算符

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