Swift面试题更新 2026-08-03

请说明 Swift 中常见的高阶函数有哪些,并分别阐述 map、filter、reduce 这三个函数的具体功能与使用场景。

考察说明

考查对 Swift 函数式编程中高阶函数的理解,特别是 map、filter、reduce 的语义和用途。

回答思路

  1. 【回答框架 1】高阶函数是指接受一个或多个函数作为参数,或者返回值是一个函数的函数。Swift 中常见的高阶函数包括 map、filter、reduce、flatMap、compactMap、sorted、forEach 等。
  2. 【回答框架 2】map 用于对集合中的每个元素执行相同的变换,并返回一个新数组,新数组的元素类型可以与原数组不同。例如将整数数组中的每个元素乘以 2。
  3. 【回答框架 3】filter 用于根据条件筛选集合中的元素,返回一个新数组,只包含满足条件的元素。例如筛选出数组中所有偶数。
  4. 【回答框架 4】reduce 用于将集合中的所有元素通过某种逻辑合并为一个值,需要提供一个初始值和一个合并闭包。例如计算整数数组的和。
  5. 【关键点 1】高阶函数是接受函数作为参数或返回函数的函数。
  6. 【关键点 2】map 对每个元素进行变换,返回新数组。
  7. 【关键点 3】filter 按条件筛选元素,返回新数组。
  8. 【关键点 4】reduce 将集合元素合并为单个值,需初始值和合并逻辑。
  9. 【关键点 5】flatMap 和 compactMap 也是常用高阶函数,分别用于降维和去除 nil。
  10. 【易错点 1】混淆 map 和 flatMap 的使用场景,flatMap 会降维,map 不会。
  11. 【易错点 2】忽略 reduce 的初始值类型,可能导致类型不匹配或逻辑错误。
  12. 【易错点 3】filter 和 map 的闭包中修改外部变量易引发副作用,应保持纯函数。