偏应用函数
Posted jztx123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了偏应用函数相关的知识,希望对你有一定的参考价值。
偏应用函数
保留部分参数,避免重复编写
object FuncApp extends App {
// 一般函数
def sum(a:Int,b:Int,c:Int)= a+b+c
// 只保留后两位参数,使用占位符语法
val a = sum(1,_:Int,_:Int)
a(2,3) // 等效于调用 sum(1,2,3)
// 保留全部
val b = sum _
b(1,2,3) // 6
}
currying函数
分开参数列表
// 原来的函数形式
def sum1(a:Int,b:Int) = a+b
// currying:将参数分开,在Spark SQL应用较多
def sum2(a:Int)(b:Int) = a+b
sum2(2)(3) // 5
容器遍历
- 提供一个待遍历的集合List
val l = List(1,2,3,4,5,6,7,8)
- 原理剖析
// 匿名函数赋予变量
val f = (i:Int)=>println(i)
// 容器遍历
l.foreach(f)
- 代入,得
l.foreach(i=>println(i))
- 最具函数风格写法
// 仅限接收参数只有一个时
l.foreach(println)
以上是关于偏应用函数的主要内容,如果未能解决你的问题,请参考以下文章