Что изменится в моменте выполнения преобразований, если цепочку map и filter сделать lazy?
База Hintsage
Коллекции и функциональный стиль
Collections, closures, map/filter/reduce и sequences.
Практика
Вопросы: Коллекции и функциональный стиль
Можно ли в Swift гарантировать повторный обход любого значения типа Sequence?
Сравните порядок map→filter и filter→map: при каком условии результат не изменится?
Как Swift управляет временем жизни переменной, захваченной escaping-замыканием?
В Swift две переменные содержат один Array: что происходит с памятью при изменении одной из них?
Как порядок элементов Sequence влияет на результат reduce при неассоциативной операции?
Разберите, почему map у Dictionary в Swift возвращает массив, а не Dictionary.
В какой ситуации для построения коллекции стоит выбрать reduce(into:) вместо reduce?
Объясните механизм: чем захват переменной через список захвата отличается от обычного захвата, если значение изменилось после создания замыкания?
Разберите ошибку эксклюзивного доступа в Swift: почему этот код нельзя безопасно скомпилировать и как изменить его, сохранив результат?
Вам нужно пропустить обработку одного элемента при обходе массива. Какой вывод даст код и что именно прекращает return внутри замыкания?
let numbers = [1, 2, 3, 4]
numbers.forEach { number in
if number == 3 {
return
}
print(number)
}
print("готово")
При работе с изменяемой Collection сохранённый индекс используется после мутации: какое правило определяет, можно ли к нему обращаться?
В приложении сумма элементов строится без начального значения. Как завершится выполнение этого кода и почему?
let values: [Int] = []
let total = values.reduce(+)
print(total)
В приложении из большого Array сохраняют небольшой ArraySlice: какое скрытое последствие это может иметь для памяти?
В практической ситуации преобразование элементов через map может завершиться ошибкой: каким образом Swift передаёт ошибку из замыкания вызывающему коду?
Нужно понять, сколько элементов реально проверит поиск первого подходящего значения. Что будет напечатано и на каком элементе завершится обход?
let numbers = [1, 2, 3, 4]
let result = numbers.first { number in
print("проверка \(number)")
return number % 2 == 0
}
print(result ?? -1)
Какое последствие возникает, если объект, уже помещённый в Set, изменяет поле, участвующее в его Hashable?
При преобразовании массива функция иногда возвращает nil: чем будут отличаться результаты применения map и compactMap?
Чем отличается результат map от flatMap, если преобразование каждого элемента возвращает последовательность?
Что обязан делать итератор Sequence при вызове next() после того, как уже вернул nil?
Показано 1–20 из 100