Sobes.tech
Back to tasks
Junior — Senior
128

Какой вывод получим в примере №20

Companies where asked:
СБЕРСБЕР

Task condition

livecode

В данном примере рассматривается массив, который может содержать как вложенные массивы, так и nil. Необходимо понять, какие значения будут напечатаны после выполнения трёх последовательных операторов print. Обратите внимание на различия между методами map, compactMap и flatMap при работе с опциональными элементами.

let matrix = [[1, 2], nil, [3, 4], [nil, 5], nil]

print(matrix.map { $0?.count })
print(matrix.compactMap { $0 }.count)
print(matrix.compactMap { $0 }.flatMap { $0 }.count)