Swift - Operators

赋值运算符

let b = 10
if x = y { // 无效,因为赋值之后不会有返回值 }

算术运算符

  • { + - * / } - { 加、减、乘、除 }
  • “+” 支持 String 的连接
"hello" + "world"

取余运算符

  • % 支持负数 { -9 % 4 = -1}
  • a % b ,忽略 b 为负数,因为 a % b 和 a % -b 是一样的结果

复合赋值运算符

var a = 1
a += 2
// 该运算符没有返回值 
let b = a += 2 // error

比较字符串

  • 返回 true or false
  • { == != > < >= <= }
  • { === !=== } // 两个对象是否相等

比较元组数值

  • 比较顺序从左到右(类型必须一致,若含有 Bool 类型则不能比较)
  • 相等:需要里面部分都对应相等。
  • 大于小于:如果第一个值相等,则推到下一个值进行比较(依次类推),当前比较的值进行比较,若不相等,得出结果并忽略后面元组的其他值的比较。
  • 只能比较小于七个值的元组,如果需要更多,需要自己实现运算符
("blue", 2) < ("purple", 1) // OK return ture
("blue", false) < ("purple", ture) // Error

三元运算符

避免多个三元进行复合

let hasHeader = ture 
let rowHeight = (hasHeader ? 30 : 50)

合并空运算符

a ?? b  等价于 a ! = nil ? a! : b
// 如果可选 a 解包有值,return a! ,为 nil return b(b 必须与 a 是同类型的),若 a 不为空,b 不执行(短路)

范围运算符

闭区间 (a..b) 包括 a 和 b , a 不能大于 b

for index in 1..5 {
}

半开区间

(a..

for i in 0..

一边

for name in names[2...] {
}
for name in names[...2] {
}
let range = ...5
range.contains(7) // false

逻辑运算符

  • !a 、&&、||
  • && 和 || 左结合 + 短路 + 括号标明优先级使表达式更清晰

你可能感兴趣的:(Swift - Operators)