我知道Swift有一条规则,如果你试图打开一个包含nil
的Optional,它会崩溃。
只是一个想法,如果我想要一个类型是可选的(允许nil
或一个值),为什么我要让我的程序崩溃如果我解开它,即使我明确说nil
是允许我的类型?
答案 0 :(得分:1)
简单地说:您不希望应用程序崩溃。当您可能需要或不需要值时,可选项非常适用,但您希望将变量分配给类型以防万一。
这类似于骑自行车时戴头盔。您可能会或可能不会在骑行期间跌落(分配值),但如果您这样做,您肯定会很高兴您有头盔(准备好变量 )对于这种情况。现在,如果你没有摔倒并发现头盔无用(找{4}} ),你只需继续踩踏(处理nil
值) 。这是我们在代码中倾向于做的事情。如果我们找到nil
值,我们会相应地处理它,这样程序就不会崩溃。
在Swift中处理nil
返回值的方法有很多种。这些技术中的一些包括但不限于:
答案 1 :(得分:1)
展开可选意味着在Optional中获取(非零)值。如果可选项包含nil
,则崩溃非常正确。
有几种方法可以有条件地展开可选值
E.g。
let name: String? = nil
如果让
if let name = name {
print(name)
}
保护让
guard let name = name else { return }
print(name)
内联条件
name?.uppercaseString
答案 2 :(得分:0)
防止未定义的行为。如果你想对一个属性做一些事情,你希望它包含一些东西。如果它在那时意外地为零,你应该意识到它并采取相应的行动。可能存在尝试用零做某事的情况(如果应用程序没有崩溃),整个流程可能会卡住。