我对swift很新。只是想知道如何将以下代码转换为可选代码。
var displayValue: Double {
get {
return NSNumberFormatter().numberFromString(display.text! as NSString)!.doubleValue
}
set {
display.text = "\(newValue)"
userIsInTheMiddleOfTypeingANumber = false
}
}
这是来自斯坦福计算器讲座系列。讲师没有说明如何使其成为可选项。我的理解是,当displayValue中有一个字符串无法转换为Double(如" Error")时,应用程序崩溃。问题是displayValue需要显示可以在不同时间转换为Double的字符串。
我之前已经问过类似的问题,但我找不到明确的答案。
由于
答案 0 :(得分:1)
无需让它返回可选项。您可以使用nil coalescing运算符在nil的情况下返回0,如下所示:
return (NSNumberFormatter().numberFromString(display.text) as? Double) ?? 0