使用 Optional Type 的实例时 ? 和 ! 的区别?


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

假设我们有一个名为 neilPeart 的实例,可选类型的鼓手,以及一个名为 rush 的可选类型乐队的实例。鼓手实例有一个乐队属性。如果我想改变neilPeart的乐队属性,"neilPeart"有什么区别?乐队=冲刺"和"尼尔皮尔特!乐队=匆忙">

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

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

最新更新