嗨,大家好,我是 Lacie,您現在收看的是 Swift - 來吧!鐵人三十項 系列的第十九篇
在鐵人賽完結後,為保持持續做筆記的習慣
將會在我的 Medium 繼續撰寫文章,若有興趣者可前往觀看。
這集要來複習打開 Optional 這個箱子的幾種方式
雖然你知道箱子裡有什麼,但系統不知道,故一定要打開
以下先來看一個例子,當你想要印出這個 Optional 時,系統會跟你說要先 unwrap:
而你還沒 unwrap 時,print 出來的東西長這樣:
而第一個要介紹的打開箱子的方式叫 - force unwrap
從它的名字就可以知道,它真的很暴力、很強迫,所以帶有一些危險性
先來試試看打開這個箱子,在後面加驚嘆號:
再來看看印出的東西,嗯!正常了:
那萬一箱子裡是 nil 會發生什麼事情呢,系統哭給你看了:
故接下來要學習的是如何安全地打開箱子
第一個要學的安全開箱法叫 - Optional Binding
很像 if else,但又有一些不一樣,直接來看個例子
原本的 Optional Binding 的概念應該是長這樣:
如果 catNumber 不是 nil,就把它開箱的值存進一個新的變數
然後簡化成了這樣:
值得注意的是,在這個 scope 範圍內,這兩個變數名是可以取一樣的:
當然也可以多重開箱,用逗號來區隔就可以:
另一個安全開箱法是 guard let,和上面很像,只是會先把 else 放在前面,也一樣直接看例子吧:
有些時候就算是沒有值,你也可以給它設一個預設值(利用雙問號):