溢出运算符

溢出是指当操作导致数字大于或小于该数字的指定位数时可能发生的情况。

由于二进制算法的工作方式,在数字对于其位变得太大之后,数字溢出到最小可能的数字(对于位大小),然后从那里继续向上计数。类似地,当一个数字变得太小时,它会下溢到最大可能的数字(对于它的位大小)并继续向下计数。

因为通常不需要这种行为并且可能导致严重的安全问题,所以当操作导致溢出或下溢时,Swift 算术运算符+-*将抛出错误。要明确允许上溢和下溢,请改用 &+&-&*

var almostTooLarge = Int.max
almostTooLarge + 1 // not allowed
almostTooLarge &+ 1 // allowed, but result will be the value of Int.min