Используйте nil-coalescing: value ?? 0.0 возвращает исходный Double, если он есть, и ноль при nil.
Метод замены nil на 0.0 для Double
Используйте nil-coalescing: value ?? 0.0 возвращает исходный Double, если он есть, и ноль при nil.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Напиши функцию, принимающую значение типа Double? и возвращающую обычный Double, где любой nil заменяется на 0.0. При передаче ненулевого значения оно должно оставаться без изменений.
Ответ
Используйте nil-coalescing: value ?? 0.0 возвращает исходный Double, если он есть, и ноль при nil.
func replacingNilWithZero(_ value: Double?) -> Double {
value ?? 0.0
}
Примеры: nil превращается в 0.0, 2.5 остаётся 2.5, отрицательное число не изменяется. Нулевое значение внутри optional также сохраняется: проверяется наличие значения, а не его отличие от нуля. NaN и бесконечность являются значениями Double, поэтому функция не заменяет их; такая нормализация потребовала бы отдельного требования.