Swift运算符
赋值运算符
将一个值赋值给另外一个值。Swift的赋值号 自身不会返回值,减少在if中使用 = 作为 == 的错误。
var a = 1
var b = 0
if a = b {
// do something
}
// 在swift中直接报错
元组使用赋值运算符
// 方式一
let result = (0, "success")
print(result.0)
print(result.1)
// 打印: 0 success
// 方式二
let (code, msg) = (0, "success")
print(code)
print(msg)
// 打印: 0 success
// 方式三
let result = (code: 0, msg: "success")
print(result.code)
print(result.msg)
//打印: 0 success
算术运算符
标准算术运算符(+ - * /)
- 加法支持String的拼接
- Swift算术运算符默认不允许值的溢出
余数运算符( % )
( a % b ) 可以求出多少个b的倍数能够刚好放进a中并且返回剩下的值(ps:就是我们所说的余数)
- 当a是负数的时候也是按照相同的方法计算
- 当b是负数的时,它的正负号被忽视了。这意味着a % b 和 a % -b 能够获得相同的结果
一元运算符
- 一元减号运算符(-)直接在要进行操作的值前边放置,不加任何空格。 返回它操作的值的负数
- 一元加号运算符(+)直接返回它操作的值,不会对其进行任何修改
溢出运算符
在默认情况下,当一个整数超过它容量的值时,Swift会报错而不是生成一个无效的数,给我们操作过大或者过小数的时候提供了安全性。同时提供三个算术溢出运算符来然系统支持整数溢出操作
- 溢出加法( &+ )
- 溢出减法( &- )
- 溢出乘法( &* )
合并空值运算符
( a ?? b ) 如果可选项a有值则展开, 如果没有值,是nil, 则返回默认值b。实际上是三元运算符作用到Optional上的缩写( a != nil ? a! : b)
注意 表达式a必须是一个可选类型,表达式b必须与a的存储类型相同。
区间运算符
- 闭区间运算符
闭区间运算符(a...b)定义了从a到b的一组范围,并且包含a和b。a的值不能大于b。 - 半开区间运算符
半开区间运算符(a..< b) 定义了从a到b 但不包括b的区间 - 单侧区间
闭区间有另外一种形式来让区间朝一个方向尽可能的远,这种区间叫做单侧区间。
位运算
- 位取反运算符( ~ ) 对所有位的数字进行取反操作。
- 位与运算符( & )可以对两个数的比特位进行合并。他会返回一个新的数,只有当这两个数都是1的时候才能返回1。
- 位或运算符( | )可以对两个比特位进行比较,然后返回一个新的数,只要两个操作位任意一个为1时,那么对应的位数就是为1。
- 位异或运算符,或者说“互斥或” ( ^ ) 可以对两个数的比特位进行比较,它返回一个新的数,当两个操作数的对应位不相同时,该数的对应位就为1。
- 位左移运算符( << )可以把所有位数的数字向左一个确定的位数。
- 位右移运算符( >> )可以把所有位数的数字向右一个确定的位数。