我知道Swift有一条规则,如果你试图解开包含nil的可选,它就会崩溃。
这只是一个想法,如果我想要一个类型是可选的(允许nil或一个值),为什么我想要我的程序在解开它时崩溃,即使我显式地说我的类型允许nil?
发布于 2016-08-25 23:27:26
简单地说:你不希望你的应用程序崩溃。当您可能需要或可能不需要值,但您希望将变量分配给某个类型以防万一时,可选函数非常有用。
这类似于骑自行车时戴头盔。你可能会在旅途中摔倒,也可能不会跌倒(赋值),但如果你跌倒了,你肯定会很高兴为这种情况准备了头盔(准备了一个变量)。现在,如果你没有跌倒并发现头盔无用(找到nil),你只需继续踩( nil值的句柄)。这是我们在代码中倾向于做的事情。如果我们找到一个nil值,我们会相应地处理它,这样程序就不会崩溃。
在Swift中,有许多方法可以处理nil返回值。其中一些技术包括但不限于:
发布于 2016-08-26 00:02:11
解包Optional意味着获取optional中的(非nil)值。如果optional包含nil,那么崩溃是非常正确的。
有几种方法可以有条件地展开可选值
例如。
let name: String? = nil如果让,则
if let name = name {
print(name)
}守卫让
guard let name = name else { return }
print(name)内联条件
name?.uppercaseString发布于 2016-08-25 23:20:02
以防止未定义的行为。如果你想用一个属性做一些事情,你希望它包含一些东西。如果它在这一点上意外为空,您应该意识到这一点,并采取相应的行动。当尝试使用nil做一些事情时,可能会出现这种情况(如果应用程序没有崩溃),整个流程可能会停滞不前。
https://stackoverflow.com/questions/39148947
复制相似问题