scala的高阶函数(算子)

本文介绍了Scala编程语言中的高阶函数,包括map、flatten、flatMap、filter、reduce/reduceLeft/reduceRight、fold/foldLeft/foldRight、sorted/sorted.reverse、sortBy、groupBy和foreach。详细讲解了这些函数的功能和使用场景,以及如何利用它们实现集合操作,如元素映射、筛选、归约和排序等。
摘要由CSDN通过智能技术生成

scala的高阶函数(算子)

scala简介

1.Scala是一门多范式的静态类型编程语言,Scala支持【面向对象】和【函数式编程】
2.Scala源代码(.scala)会被编译成java字节码(.class),然后运行在JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接

Scala匿名函数

知识补充:
1.不需要写def 函数名
2.不需要写返回类型,使用类型推导
3.= 变成 =>
4. 如果有多行则使用{}包括,否则建议省略

   //普通的函数
   def test1(v1:Int,v2:Int):Int = {
   
       v1+v2
   }
  
   //匿名函数
   (v1:Int,v2:Int) => v1+v2
   
   //在scala中函数也是一个值,所以可以使用变量存储匿名函数
   val f1 = (v1:Int,v2:Int) => v1+v2
   f1(10,20)     //输出结果:30

scala自带高阶函数

概述:可以接收一个函数的函数就是高阶函数

1.map

介绍:将集合中的每一个元素通过指定功能(函数)映射(转换)成新的结果集

需求:请将List(1,2,3)中的所有元素都*2,将结果放到一个新的集合中返回,即返回一个新的List(2,4,6)

①. 传统做法:遍历list集合,获取每一个元素*2,放入新的集合中

val list1 = List(1,2,3)
var list2 = List[Int]()
for (elem <- list1) {
   
    list2 = list2 :+ elem*2
}
println(list2)		//List(2, 4, 6)

传统写法总结:优点是比较直接、好理解
缺点是不够简洁、高效,没有体现函数式编程特点

②. 使用map函数

val list1 = List(1,2,3)
val list2 = list1.map(v=>v*2)
println(list2)			//List(2, 4, 6)

③. 模拟实现map函数

class MyList {
   

  var list1 = List(1,2,3)

  var list2 = List[Int]()

  def map(f:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值