代码之家  ›  专栏  ›  技术社区  ›  PGDev

在Swift中以高阶函数(map、filter等)进行流式处理

  •  1
  • PGDev  · 技术社区  · 7 年前

    我已经看过多篇关于如何 高阶函数 filter, map, sort, reduce 斯威夫特 .

    流动

    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    var arr1 = arr.map { $0 * $0 }.filter { $0 % 2 == 0 } //Output: [4, 16, 36, 64, 100]
    

    我的意思是,在上面的代码中,每次 map arr ,会不会传给 filter 不必等待 处理所有元素 阿里尔 ?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Rakesha Shastri    7 年前

    ,他们没有。 filter 只有在 map 正常使用时完成。

    lazy 其中,过滤只会在链中的下一个函数需要时发生。这也防止了 中间的 数组。(每个函数将创建一个 数组,然后将其传递给下一个函数)


    看看这篇文章,可以得到一个关于懒散集合的很好的解释。- Lazy Collections in Swift