Как можно безопасно развернуть первый необязательный элемент из arrayOfStrings
, чтобы получить только pounds
со значением по умолчанию 0, используя coalescing unwrapping
?
Исходя из приведенного ниже кода, я хочу получитьчтобы получить 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
to "lb. 8oz."
Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения
К вашему сведению - я ищу однострочное решение, я знаю, каксделать это, используя if let
или guard
.