多亏重构,Swift才能有这种最简单的解决方式:
var a = 10
var b = 20
(a, b) = (b, a)
5.通过溢出(overflow)算符让加减法能够环绕处理
所有的Swift整型都有最大值,比如UInt8的最大值是255,Int64的最大值是9,223,372,036,854,775,807。
为了保证安全,如果超过整型的限值,Swift会自动崩溃。比如下面的代码在编译时没问题而运行时会崩溃
let highScore = Int8.max
let newHighScore = highScore + 1
因为它在Int8.max上加1,产生了超过Int8存储范围的128。尽管崩溃听起来不好,但是至少它保证了安全。
不过,Swift提供了另一种处理方法:我们可以用overflow做加法,它让Swift绕回最小值,而不是崩溃。
let highNumber = UInt8.max
let nextNumber = highNumber &+ 1
它实际上挺常用,例如MySQL数据库会自动分配整数ID到数据库表单的行中。但是当整数都用完后,它会绕回并从1开始查到未使用ID,其中有些会随时间被删除。
6.公众只读,个人可写
尽管Swift的访问控制过去倍受诟病,但通过使用2个不同的访问控制属性可以改善很多。
例如下面的结构代表一家银行:
struct Bank {
var address: String
}
我们对address没有使用任何访问控制,意味着任何人都可以读取并改写它。如果我们对这个属性用private,别人是改不了它,但也无法读它了。








