如何理解 swift 既 ? 同 !

如何理解 swift 既 ? 同 !

假設有 Class 叫 Animal

Animal? 並不要好似網上d tutorial 話 一係有一係 nil 咁理解

不如你當佢係未知的禮物 type 咁理解 (inspired by wrapped / unwrapped)

Animal? 有兩個狀態 1: S<Type> 或者 2: nil

唔係 nil 就可以打開佢, 打開左先係以前我地認識既 var

呢個世界有 3 個方法去打開禮物包

  1. ! 強行打開

  2. if let abc = xyz { } 禮物打開咪做下面d logic

  3. abc?.function() 有咪行個 function 囉

as? as! 都類似

as! 有機會 nil -> runtime error

as? 就要用 if let 幫幫手

if let animalSelectedNode = selectedNode as? AnimalSpriteNode {

ref: http://stackoverflow.com/questions/24018327/what-does-an-exclamation-mark-mean-in-the-swift-language