Безопасное извлечение значения из цепочки опционалов
Swift
Средний
optionals
Задача «Безопасное извлечение значения из цепочки опционалов»
Вам дана строка, содержащая целые числа, разделённые пробелами. Некоторые числа могут отсутствовать (заменены на '?'). Напишите функцию, которая принимает строку, разбивает её на компоненты, преобразует каждый компонент в опциональный Int, используя Int($0). Если компонент равен '?', то он должен быть преобразован в nil. Затем из полученного массива опционалов необходимо извлечь и сложить все значения, которые не равны nil, используя компактную цепочку опционалов (например, через compactMap и reduce). Если после обработки не осталось ни одного числа, вернуть nil. Иначе вернуть сумму как Int. Входные данные: одна строка. Выходные данные: целое число или строка "nil".
Формат ввода
Одна строка, содержащая целые числа и/или символы '?', разделённые пробелами.
Формат вывода
Целое число (сумма всех чисел, не равных nil) или строка "nil", если чисел нет.
Примеры
Пример 1
ВВОД
3 ? 7 ? 2
ВЫВОД
12
Пример 2
ВВОД
? ? ?
ВЫВОД
nil
Пример 3
ВВОД
3
cat
apple
dog
ВЫВОД
3
main.swift