Swifter - 100 个 Swift 必备 tips
Swifter - 100 个 Swift 必备 tips,作者[王巍](SWifter - 100个 Swift 必备 tips)。书买了很久了,25元比实体书便宜不少,而且收入基本上都归作者。学习完疯狂 Swift 讲义,再看看这个补充一下。
章节顺序可能与书不一致,全凭兴趣随意浏览,尤其是不太懂得方面。
##操作符
infix 表示一个中位操作符,前后都有输入。类似的还有 prefix 和 postfix。
associativity 定义了结合律
precedence 运算的优先级,Swift 中乘法和除法的优先级是150,加法和减法是140,这里定义160,就是高于普通的四则运算。
操作符定义在全局,不可滥用。
1 | // main.swift |
随机数生成
创建一个 Range 的随机数的方法,方便以后复用。
Swift 支持 // MARK: 、// TODO:、// FIXME:等编译标记,方便分段,将一标签的形式显示在导航栏中,让程序更易读。
1 | // MARK: 实现方法 |
断言
对于判断输入是否满足某种条件的运用情景,使用断言比 if 更合适。且在 Debug 编译是才有效,运行时不被编译执行,不会消耗运行时的性能。是非常合适的调试判断。
1 | import Foundation |
自省
程序设计和人类哲学所面临的同一个重大课程就是解决“我是谁”。
isKindOfClass、isMemberOfClass、is
1 | class ClassA: NSObject { } |
属性观察
属性观察可以对当前类型内监视其属性的设定,并作出响应。
1 | class MyClass { var date: NSDate { willSet { print("即将将日期从 \(date) 设定至 \(newValue)") } didSet { print("已经将日期从 \(oldValue) 设定至 \(date)") } |