WWDC 2015 Session 106

Session 106 Swift 2.0

最主要的5功能


Enum




option Set

swift 1.0 時, option set 用 nil 做判斷的窘境


統合 func 寫法

在之前 global func 跟 instance func

在調用上寫法會不同,在這次改版後這兩種 func 終於一樣了。

移除 # 語法。



新警告提示



Pattern Match

在很多情況下我們可能會有很多 optional 的變數

為了確保有真正的實體存在,我們用 if let 確認實體存在

所以如果有五個變數要判斷,我們就會建出五層金字塔

十個變數要判斷的話,就會建出十層金字塔!!

因此在 swift 1.2 時加入了 compound conditions,可以在一次的 if let 當中,把所有 optional 變數判斷完畢。

if let 金字塔
if let compound conditions

Guard

從下圖來看,可以知道光是 if let 還是不夠的

if let 語法只適用於那段 block 區塊使用,又不想把 if 邏輯攪拌在一起

因此提供了新的解決方式 guard

guard 之前(還必須使用解包寫法)
guard 之後
guard & compound conditions

Pattern Match case

switch case 的 pattern match 相當強大好用,這次同時支援了 if casefor case

if case
for case


Available

可以順便參考 session 411 前半段

使用 repondsToSelector 確認可用
調用特定版本API


extension 寫法變得更靈活
攤平的語法,更高可讀性


Error Handle

seesion 401 中間部份也有提到一些。

(try 還沒搞清楚)







try

defer


Other

do repeat



其他沒提到的功能