素材:A Swift Tour
推荐下载Playground:Download Playground
objc 自己较为熟悉,想熟悉下风头正劲的 swift。就先从官方的入门手册开始撸。
每一小节,我都摘录或总结3个对自己三观冲击最大的【知识点】,以方便以后温习。总结不保证绝对正确,仅供交流之用。O(∩_∩)O哈哈~
Simple Values
- var 表示变量
- let 声明常量
- [] 用于声明数组和字符串
Control Flow
- if 或 while 等的判断条件中必须使用布尔值.
- 判断条件中的可能为 nil 值,统一使用 let varName = maybeNil 语法.
- for in 循环,可同时应用于数组,字典或特定范围(Range).
Functions and Closures
Objects and Classes
- swift 默认不会使用零值在声明时初始化变量.
- let 常量,只能初始化一次,但可以不在声明时立即初始化.
- 子类初始化顺序是: 子类未初始化属性的初始化 –> 调用父类 init 方法 –> 其他额外操作
Enumerations and Structures
- struct 是复制传值,即使只是简单的 var a = b,a 和 b 也是两个独立的对象.
- enum 不是必须和某个类型值的关联.
- enum 可以使用某种模式来作为动态匹配的 case.
Protocols and Extensions
- 增加新数据结构通用语法: [class|struct|enum|extension|protocol] 名称 : [class|protocol] {…}
- Int 等基础类型,其实现是一个 Struct
- enum 和 extension 不可以持有属性,但是可以用 get 方法来模拟一个属性
Error Handling
- try 和有 throws 声明的函数配对使用.
- try? 可选操作,有异常抛出则返回nil; try! 强制操作,有异常抛出,则抛出无法 do-catch 的致命异常.
- defer block 在函数异常退出时,也可以正常执行.