Как функция «+» возвращает массив, который похож на его добавление всех предыдущих чисел каждого индекса? Я получаю 0 + 1 = 1, 1 + 2 = 3, 1 + 2 + 3 + 4 = 10, но у меня возникают проблемы с подключением того, как функция комбайна делает это с помощью только «+»Что такое закрытие «+» в этом расширении массива?
extension Array {
func accumulate<U>(initial: U, combine: (U, Element) -> U) -> [U] {
var running = initial
return self.map { next in
running = combine(running, next)
return running
}
}
}
let test = [1,2,3,4]
test.accumulate(0, combine: +)
// returns [1, 3, 6, 10]
Это просто демонстрация того, как работает встроенный 'reduce'. Объясняется в этом разделе моей онлайн-книги: http://www.apeth.com/swiftBook/ch04.html#_array_enumeration_and_transformation – matt
Посмотрите раздел «Функции оператора» в ссылке Swift. –
@MartinR: Спасибо, это недостающая часть, которую мне нужно было соединить точки –