Closure, Замыкание. Сумма всех чисел из массива


#1

Всем привет, не могу понять как написать код по сумме(дальше измени условие на разносить и тп) всех значений в массиве, изменяемая часть моего кода только это действие…

Пример без клоужера, поменять хочу только действия суммы:

func sumValue (array: [Double]) -> Double {
    var result = 0.0
    
    for value in array {
        result += value
    }
    return result
}

Мой код пока что выглядит так… Более 12 часов сижу не могу понять как написать, чтобы остался в основной функции цикл, а в цикле клоужер…

func test (array: [Double], closure: (Double) -> Double) -> (Double) {
    
    var result = 0.0

for value in array {
    closure(value)
}
//
}

test(array: arrayDouble) { value in
    var resultValue = //
    
}

#2

Так же как и первый вариант, тк клоужер сработает сразу как вызовите. Поэтому нужно накопить результат во временной переменной и потом его выкинуть в клоужер после цикла