中的值类型, 并不会在一开始赋值的时候就去复制, 只有在需要修改的时候, 才去复制。..., 如果表达式是假或者值绑定失败的时候, 会执行 else 语句, 且在 else 语句中一定要停止函数调用
例如
guard 1 + 1 == 2 else {
fatalError("something...如果需要限制整个类无法被继承, 那么可以在类名之前加一个final
▐ 2.19 public 和 open 的区别
这两个都用于在模块中声明需要对外界暴露的函数, 区别在于, public 修饰的类...是一个静态语言, 所以没有 Objective-C 中的消息发送这些动态机制, dynamic 的作用就是让 swift 代码也能有 Objective-C 中的动态机制, 常用的地方就是 KVO 了..., 如果要监控一个属性, 则必须要标记为 dynamic
▐ 2.24 什么时候使用 @objc
@objc 用途是为了在 Objective-C 和 Swift 混编的时候, 能够正常调用 Swift