gpt4 book ai didi

ios - 这个数组扩展中的 "+"闭包在做什么?

转载 作者:行者123 更新时间:2023-11-29 00:57:13 25 4
gpt4 key购买 nike

“+”的函数如何返回一个看起来像是将每个索引前面的所有数字相加的数组?我得到 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]

最佳答案

combine 是一个函数。说combine(running, next)调用该函数,该函数采用两个参数。在 Swift 中,+(与其他所有运算符一样)一个函数。因此,当 combine+ 时,调用 combine 会将 running 添加到 next 并返回结果。

关于ios - 这个数组扩展中的 "+"闭包在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com