安全地从可选链中提取值
Swift
Medium
optionals
任务 «安全地从可选链中提取值»
给你一个字符串,其中包含由空格分隔的整数。某些数字可能缺失(用 '?' 代替)。请编写一个函数,该函数接收字符串,将其拆分为多个部分,使用 `Int($0)` 将每个部分转换为可选的 Int。如果某个部分等于 '?',则应将其转换为 nil。然后,从得到的可选值数组中,使用紧凑的可选链(例如通过 `compactMap` 和 `reduce`)提取并累加所有不为 nil 的值。如果处理后没有剩余任何数字,则返回 nil。否则,将总和作为 Int 返回。输入数据:一个字符串。输出数据:一个整数或字符串 "nil"。
输入格式
一行包含整数和/或字符 '?' 的字符串,由空格分隔。
输出格式
整数(所有不等于nil的数字之和)或字符串"nil"(如果没有数字)。
示例
示例 1
输入
3 ? 7 ? 2
输出
12
示例 2
输入
? ? ?
输出
nil
示例 3
输入
3
cat
apple
dog
输出
3
main.swift