scala的高阶函数(算子)

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:Int
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值