我如何使用`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 letguard.

您可以解包数组的访问转换为Double

let pounds = Double(arrayOfStrings.first ?? "0") ?? 0.0
let pounds = Double(arrayOfStrings[0]) ?? 0.0
print("Pounds \(pounds)")

适合我。