Scala中常用的高阶函数

// map->在列表的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表
def main(args:Array[String]) {
    val num = List(1,2,3,4)
    num.map((i:Int)=>i*2)
    for (n <- num.map((i:Int)=>i*2)) {
      println(n)
    }
    // 打印出2,4,6,8
}

// foreach->foreach和map相似,只不过没有返回值,foreach主要是为参数进行作用
def main(args:Array[String]) {
    val num = List(1,2,3,4)
    num.foreach((i:Int)=>i*2)
}

// filter->移除任何使得传入的函数返回false的元素
def main(args:Array[String]) {
    val num = List(1,2,3,4)
    num.filter((i:Int)=>i%2 ==0)
    for (n <- num.filter((i:Int)=>i%2 ==0)) {
      println(n)
    }
    // 打印出2,4
}

// zip->把两个列表的元素合并成一个由元素对组成的列表里
def main(args:Array[String]) {
   	val num = List(1,2,3,4)
	val num2 = List(5,6,7,8)
	println(num.zip(num2))
   	// 打印出List((1,5), (2,6), (3,7), (4,8))
}

// find->返回集合里第一个匹配断言函数的元素
def main(args:Array[String]) {
   	val num = List(1,2,3,4)
	println(num.find(_ % 3 == 0))
	// 打印出3
}

// flatten把嵌套的结构展开
def main(args:Array[String]) {
   	val num = List(List(1,2,3,4),List(5,6,7,8))
	println(num.flatten)
	// 打印出List(1, 2, 3, 4, 5, 6, 7, 8)
}

// flatMap是一个常用的combinator,它结合了map和flatten的功能
def main(args:Array[String]) {
   	val num = List(List(1,2,3,4),List(5,6,7,8))
	val s = num.flatMap(x => x.map(_ * 2));
	println(s)
	// 打印出ListList(2, 4, 6, 8, 10, 12, 14, 16)
}

猜你喜欢

转载自blog.csdn.net/m0_37723298/article/details/84331730
今日推荐