如何理解 swift 既 ? 同 !
假設有 Class 叫 Animal
Animal?
並不要好似網上d tutorial 話 一係有一係 nil 咁理解
不如你當佢係未知的禮物 type 咁理解 (inspired by wrapped / unwrapped)
Animal?
有兩個狀態 1: S<Type>
或者 2: nil
唔係 nil 就可以打開佢, 打開左先係以前我地認識既 var
呢個世界有 3 個方法去打開禮物包
-
!
強行打開 -
if let abc = xyz { } 禮物打開咪做下面d logic
-
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