3-2.【函数式编程】给定数组 [1,2,3,4],使用 reduce 实现数组求和和数组元素平方求和。

1 阅读1分钟

数组示例:

let numbers = [1, 2, 3, 4]

1️⃣ 数组求和

使用 reduce 求和的思路:

  1. 初始值设为 0
  2. 每一步累加当前元素
let sum = numbers.reduce(0) { partialResult, number in
    partialResult + number
}

print(sum) // 输出 10

简写版本(更常用)

let sum = numbers.reduce(0, +)
print(sum) // 10

2️⃣ 数组元素平方求和

思路:

  1. 初始值设为 0
  2. 每一步累加当前元素的平方
let sumOfSquares = numbers.reduce(0) { partialResult, number in
    partialResult + number * number
}

print(sumOfSquares) // 输出 30

总结

  • reduce 初始值 + 闭包定义如何累计
  • reduce(0, +) 是求和的经典简写
  • 可以通过闭包灵活地实现任意累计逻辑(比如平方求和、阶乘、数组拼接等)