Swift运算符

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。
  • 位左移运算符( << )可以把所有位数的数字向左一个确定的位数。
  • 位右移运算符( >> )可以把所有位数的数字向右一个确定的位数。
原文地址:https://www.cnblogs.com/MingLL/p/14078823.html