scala.Function1和scala.Function2

Function1

带一个参数的方法,声明时,它需要两个泛型参数,第一个是传入的数据类型,第二个表示返回的数据类型,Function1是 trait ,它有一个apply方法,用来对输入参数进行处理了,使用Function1,必须实现apply接口

object Main extends App {
val succ = (x: Int) => x + 1
val anonfun1 = new Function1[Int, Int] {
  def apply(x: Int): Int = x + 1
}
assert(succ(0) == anonfun1(0))
}

 

Function2

带两个参数的方法,它的声明需要三个泛型参数,前两个是入参类型,第三个是返回数据类型,同Function1一样,也要实现apply方法

object Main extends App {
   val max = (x: Int, y: Int) => if (x < y) y else x

   val anonfun2 = new Function2[Int, Int, Int] {
     def apply(x: Int, y: Int): Int = if (x < y) y else x
   }
   assert(max(0, 1) == anonfun2(0, 1))
}

 =========================

spark的Aggregator类

case class Aggregator[K, V, C] (
    createCombiner: V => C,
    mergeValue: (C, V) => C,
    mergeCombiners: (C, C) => C) {
   //省略部分代码
}

 它的构造函数其实为:

Aggregator(scala.Function1<V,C> createCombiner, 
           scala.Function2<C,V,C> mergeValue, 
           scala.Function2<C,C,C> mergeCombiners) 

参考:

scala 2.12.6 Function1 API

scala 2.12.6 Function2 API

Scala:Function1、Function2

spark Aggregator<K,V,C> API

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值