在Apple Swift中,在什么情况下我不希望隐式解包可选项?
我相信我明白为什么选项是方便的(我最好的想法是能够返回一个零布尔值),但在什么情况下,我想声明一个包装的可选使用? 而不是 ! 为隐式解包可选。
这似乎没有必要宣布? 然后input! 到处都是,而不仅仅是使用! 一旦。
我不想忽视? 作为无用的,但我只是无法find它的用途…任何想法?
如果您尝试访问隐式解包的可选内容,并且没有任何内容,则您的应用将崩溃。
如果您使用模式来检查可选的绑定和可选链接的内容 – 您可以控制应用程序在不可预见的情况下应该如何优雅地失败。 而且它不会让你的代码更加复杂。
没有崩溃似乎是一个很好的理由给我。
首先让我们来谈谈点什么? 在迅速。 你可以创build一个如下所示的var。
var number : Int?
你基本上是说这个variables有可能是零。 如果有一个对象可能是零的可能性,那么你不会想要做这样的事情。
var secondNumber = number! + 5
基本上在你说的这个陈述中,这个variables有可能是零,但是我会完全忽略这个事实,假装没有办法可能是零。
相反,您将需要检查该variables是否存在,然后将其设置为如此
var number : Int? var number2 : Int? number = 10 if let unwrappedNumber = number { number2 = unwrappedNumber + 5 }
希望这可以帮助!
隐式解包选项引入了类似于解引用空指针的可能失败。 只有当你确信没有人会意外地通过零时,或者当你愿意告诉接口的客户端,如果它们违反了接口要求,这个函数将会崩溃的时候,你才应该使用它们。
另一种避免使用的方法? 一再是如果让声明:
func foo(bar:Int?) -> Int? { if let x = bar { if Int.max / x >= x { return x * x } } return nil }
这里x
是一个Int
而不是Int?
。