差异?而且!什么时候使用可选类型的实例?

时间:2017-07-27 04:44:19

标签: swift

var neilPeart: Drummer? = Drummer()

var rush: Band? = Band(drummer: neilPaert!)

假设我们有一个名为neilPeart的实例,可选类型的Drummer,以及一个名为rush的可选类型的Band实例。 Drummer实例有一个band属性。如果我想改变neilPeart的band属性,那么" neilPeart?.band = rush"之间的区别是什么?和" neilPeart!.band = rush"

2 个答案:

答案 0 :(得分:2)

  • ?如果没有值,则将其设置为nil
  • !将强制展开值,如果没有值,将会使应用程序崩溃

答案 1 :(得分:2)

选项使用?标记,这意味着,如果我要说var title: String?。这意味着标题可能包含值或为零。的!点用于展开可选值。这可能会给您带来问题,如果您的值为零,则会给您一个错误。该错误将导致无法解开nil对象。希望这有帮助!