You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中.map()、.filter()等高阶函数是否保持集合顺序?

Swift中.map()、.filter()、.reduce()的顺序保证问题

对于Swift里的Array这类有序集合,.map()、.filter()、.reduce()这三个高阶函数都会严格保持输入集合的原有元素顺序,不会出现乱序情况。

具体说明:

  • .map():会按原数组的元素顺序依次执行转换操作,结果数组的元素位置和原数组完全一一对应。比如你给出的例子:

    let arrayOfIntegers: [Int] = [1, 2, 3, 4, 5]
    let mappedArray = arrayOfIntegers.map { $0 * 2 }
    

    执行后mappedArray必然是[2, 4, 6, 8, 10],绝对不会出现[2, 6, 10, 4, 8]这类乱序结果。

  • .filter():过滤后保留的元素会完全遵循它们在原数组中的相对顺序。比如对原数组过滤偶数,结果会是[2, 4],不会变成[4, 2]。

  • .reduce():虽然最终返回单个聚合值,但它会按原数组的元素顺序从左到右遍历累积,计算过程的顺序是固定的,不会打乱原数组的元素处理顺序。

注意:如果是Set这类无序集合,调用这些函数的结果顺序就没有保证,但你的例子里用的是Array,完全不用担心乱序问题。

内容的提问来源于stack exchange,提问作者Burak Akyalçın

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:47:44