Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
let words = ["4", "two", "6"]
let total = words.compactMap { Int($0) }.reduce(0, +)
print(total)10
- Ждать, что программа не скомпилируется, как с
map:mapдал бы[Int?], которыйreduce(0, +)не сложит, аcompactMapвыбрасываетnilи возвращает[Int]. - Ждать
12, считая, чтоIntпонимает числа словами.Int("two")даётnil, поэтому складываются только4и6.
- Что даёт
words.map { Int($0) }и почему его нельзя сложить черезreduce(0, +)? - Как посчитать слова, которые не являются числами?