Я читаю iOS 13 Основ программирования на Swift, дошел до части, касающейся reduce (), и я думаю, что понимаю это более или менее, но затем есть сокращение (в :) и этот фрагмент кода:
let nums = [1,2,3,4,5]
let result = nums.reduce(into: [[],[]]) { temp, i in
temp[i%2].append(i)
}
// result is now [[2,4],[1,3,5]]
Итак, этот код берет массив Int и разбивает его на 2 массива, четный и нечетный. Проблема в том, что я понятия не имею, что происходит внутри скобок {}.
В случае уменьшения первый параметр является первым из итерации, а затем предполагается, что закрытие обработает все элементы один за другим, похожим на map (), но более мощным (здесь одного l oop достаточно, чтобы получить два массива, но с map () мне понадобятся 2 цикла, согласно книге).
Я все равно не могу понять синтаксис здесь, особенно что означает «temp» и это использование «in». И как «append ()» добавляет значение в правильный массив ??