我如何使用`coalescing unwrapping`安全地解开一个默认值的可选 - 不起作用 - Swift
How can I safety unwrap an optional with a default value using `coalescing unwrapping` - Not workig - Swift
如何使用 coalescing unwrapping
安全地解开 arrayOfStrings
中的第一个可选项目以仅获得默认值为 0 的 pounds
?
根据下面的代码,我想要的是能够获得 5
但如果这是空的,则将 0 指定为默认值,例如,如果 measurement
是 "lb. 8oz."
我要pounds
得到0的值。
在下面的示例中,我确实得到了 5
,但是如果我将 measurement
从 "5lb. 8oz."
更改为 "lb. 8oz."
,它就会崩溃
let measurement = "5lb. 8oz."
let arrayOfStrings:[String] = measurement.components(separatedBy: "l")
print("Array of Strings: \(arrayOfStrings)") //Output: Array of Strings: ["5", "b. 8oz."]
let pounds = Double(arrayOfStrings[0] ?? "0")
print("Pounds \(pounds!)") //Output: Pounds 5.0
错误:将measurement
更改为"lb. 8oz."
时
Fatal error: Unexpectedly found nil while unwrapping an Optional value
仅供参考 - 我正在寻找单行解决方案,我知道如何使用 if let
或 guard
.
您可以解包数组的访问和转换为Double
let pounds = Double(arrayOfStrings.first ?? "0") ?? 0.0
let pounds = Double(arrayOfStrings[0]) ?? 0.0
print("Pounds \(pounds)")
适合我。
如何使用 coalescing unwrapping
安全地解开 arrayOfStrings
中的第一个可选项目以仅获得默认值为 0 的 pounds
?
根据下面的代码,我想要的是能够获得 5
但如果这是空的,则将 0 指定为默认值,例如,如果 measurement
是 "lb. 8oz."
我要pounds
得到0的值。
在下面的示例中,我确实得到了 5
,但是如果我将 measurement
从 "5lb. 8oz."
更改为 "lb. 8oz."
let measurement = "5lb. 8oz."
let arrayOfStrings:[String] = measurement.components(separatedBy: "l")
print("Array of Strings: \(arrayOfStrings)") //Output: Array of Strings: ["5", "b. 8oz."]
let pounds = Double(arrayOfStrings[0] ?? "0")
print("Pounds \(pounds!)") //Output: Pounds 5.0
错误:将measurement
更改为"lb. 8oz."
Fatal error: Unexpectedly found nil while unwrapping an Optional value
仅供参考 - 我正在寻找单行解决方案,我知道如何使用 if let
或 guard
.
您可以解包数组的访问和转换为Double
let pounds = Double(arrayOfStrings.first ?? "0") ?? 0.0
let pounds = Double(arrayOfStrings[0]) ?? 0.0
print("Pounds \(pounds)")
适合我。