gpt4 book ai didi

swift - 在 Swift 4 中使用索引进行映射/归约

转载 作者:搜寻专家 更新时间:2023-11-01 06:29:42 25 4
gpt4 key购买 nike

如何在 Swift 4 中以更优雅的方式完成类似以下的事情,例如使用 map 和/或 reduce。

为了在此处发布,我简化了代码,但请注意它确实需要使用索引。

var numbers = [50, 20, 70, 80, 90]
var result = [0,0,0]
for number in numbers {
for i in 0...2 {
result[i] += number + i
}
}

最终结果应该是:

[Int] = 3 values {
[0] = 310
[1] = 315
[2] = 320
}

最佳答案

这是等价的

let result = (0...2).map({ index in numbers.reduce(0) { (sum, current) in sum + current + index } })

或者如果你想使用result数组

let r = result.enumerated().map({ (index, _) in numbers.reduce(0) { (sum, current) in sum + current + index } })

但效率会更高

let sum = numbers.reduce(0, +)
let resultsExpected = 3
let result = (0..<resultsExpected).map({ $0 * numbers.count + sum })

关于swift - 在 Swift 4 中使用索引进行映射/归约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141059/

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