使 NSNumberformatter().numberFromString return 成为可选的

Make NSNumberformatter().numberFromString return an optional

我是 swift 的新手。只是想知道如何将下面的代码转换为可选代码。

var displayValue:  Double {
    get {
        return NSNumberFormatter().numberFromString(display.text! as NSString)!.doubleValue
         }
    set {
        display.text = "\(newValue)"
        userIsInTheMiddleOfTypeingANumber = false
    }
}

这是来自斯坦福计算器系列讲座。讲师没有说明如何使其成为可选的。我的理解是,当 displayValue 中有一个字符串无法转换为 Double(如 "Error")时,应用程序会崩溃。问题是 displayValue 需要在不同时间显示可以和不能转换为 Double 的字符串。

我知道以前有人问过类似的问题,但我找不到明确的答案。

谢谢

无需将其设为 return 可选。在 nil 的情况下,您可以使用 nil 合并运算符 return 0,如下所示:

return (NSNumberFormatter().numberFromString(display.text) as? Double) ?? 0