带有“?”(问号)和“!”(感叹号)的快速变量修饰

我了解在Swift中所有变量都必须设置一个值,并且通过使用可选参数,我们可以将变量设置为nil初始值。


我不明白的是,用a设置变量的作用!是什么,因为我的印象是这会“取消包装”来自可选值的值。我认为通过这样做,您可以保证在该变量中有一个要解包的值,这就是为什么在IBActions上使用这种值的原因。


简而言之,当您执行以下操作时,将初始化为什么变量:


var aShape : CAShapeLayer!

以及为什么/何时会这样做?


慕容708150
浏览 973回答 2
2回答

慕少森

我认为“ 这基本上是我们在Objective-C中已经存在的行为 ” 这句话可能会造成混淆。在Objective-C中,人们可以访问一个nil值并实际“使用”它,而在nil为零时快速访问一个隐式展开的可选内容将抛出运行时异常。
打开App,查看更多内容
随时随地看视频慕课网APP