• scala函数组合器


    1、map

    在列表中的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表。

    scala> numbers.map(_ * 2)
    res3: Array[Int] = Array(2, 4, 6, 8)

    2、foreach

    和map一样对序列中的每个元素操作,不同的是无返回值

    scala> numbers.foreach(println(_))
    1
    2
    3
    4

    3、filter

    移除任何使得传入的函数返回false的元素。返回Boolean类型的函数一般都称为断言函数。

    scala> numbers.filter(_ % 2 == 0)
    res5: Array[Int] = Array(2, 4)

    4、zip

    把两个列表的元素合成一个由元素对组成的列表里。

    scala> Array(1, 2, 3).zip(Array("one", "two", "three"))
    res6: Array[(Int, java.lang.String)] = Array((1,one), (2,two), (3,three))

    5、partition

    根据断言函数的返回值对列表进行拆分。

    scala> val numbers = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    numbers: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    scala> numbers.partition(_ % 2 == 0)
    res7: (Array[Int], Array[Int]) = (Array(2, 4, 6, 8, 10),Array(1, 3, 5, 7, 9))

    6、find

    返回集合里第一个匹配断言函数的元素

    scala> numbers.find(_ > 5)
    res8: Option[Int] = Some(6)

    7、drop&dropWhile

    drop丢弃前i个元素

    scala> numbers.drop(3)
    res9: Array[Int] = Array(4, 5, 6, 7, 8, 9, 10)

    dropWhile移除前几个匹配断言函数的元素

    scala> numbers.dropWhile(_ % 2 != 0)
    res11: Array[Int] = Array(2, 3, 4, 5, 6, 7, 8, 9, 10)

    8、foldLeft

    scala> numbers.foldLeft(0)((a, b) => a + b)
    res12: Int = 55

    0是起始值

    scala> numbers.foldLeft(0){(a, b) => println("a: " + a + " b: " + b); a + b}
    a: 0 b: 1
    a: 1 b: 2
    a: 3 b: 3
    a: 6 b: 4
    a: 10 b: 5
    a: 15 b: 6
    a: 21 b: 7
    a: 28 b: 8
    a: 36 b: 9
    a: 45 b: 10
    res16: Int = 55

    9、foldRight

    迭代方向与前者相反

    10、flatten

    flatten可以把嵌套的结构展开

    scala> Array(Array(1, 2), Array(3, 4))
    res17: Array[Array[Int]] = Array(Array(1, 2), Array(3, 4))

    scala> Array(Array(1, 2), Array(3, 4)).flatten
    res18: Array[Int] = Array(1, 2, 3, 4)

    11、flatMap

    它结合了map和flatten的功能。flatMap接收一个可以处理嵌套列表的函数,然后把返回结果连接起来。

    scala> val test = Array(Array(1, 2), Array(3, 4))
    test: Array[Array[Int]] = Array(Array(1, 2), Array(3, 4))

    scala> test.flatMap(x => x.map(_ * 2))

    res20: Array[Int] = Array(2, 4, 6, 8)

  • 相关阅读:
    unity 颜色空间
    Shader 常用常量 函数等
    Unity3d cg Shader 相关的方法
    DirectX HLSL Shader 内置函数
    unity texture2d 图片尺寸压缩
    Unity中Zxing生成二维码只能生成256大小图片的解决方案
    读取保存 调用系统选框 仅限Win/Mac/WebGL
    Unity编辑器中递归设置文件夹下资源的 AssetBundle Tag 可多选
    扣绿幕Shader(可自选颜色)
    智能手环体验:UP24
  • 原文地址:https://www.cnblogs.com/vincent-hv/p/3297542.html
Copyright © 2020-2023  润新知