一、部分参数化函数
def max(x:Int,y:Int) ={
x+y;
}
//这两个是等价的
var parserMax=(x:Int)=>max(1,_:Int);
// 部分参数化函数
var parse=max(3,_:Int);
for example:我们日志对象我们传递实际内容并且打印当前时间的日志
var date=new Date();
def logmessage(date:Date,message:String):Unit={
print(s"$date,$message")
}
var logBoundDate=logmesage(date,_:String)
二、柯里化函数
柯里化函数:是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个原有第二个参数为参数的函数。
def add(x:Int,y:Int)=x+y
def add(x:Int)(y:Int)=x+y
//我们应用的时候,应用这样的add(1)(2)最终结果返回的是(3)这种方式(过程)叫做柯里化,经过珂里化之后,通用性有所降低,但是实用性有所提升
解析下面过程
def add(x:Int)=(y:Int)=>x+y
该方法返回的是一个匿名函数,也就意味着add方法返回的是一个匿名函数
网友评论