下面介绍Scala函数的柯里化这一特性,柯里化也是函数定义的一种方式。通过柯里化的定义和柯里化函数结合相关案例进行详细介绍。
1.柯里化的定义
柯里化的定义语法为:
def 函数名 (参数列表1)(参数列表2)... (参数列表n):type={
方法体
}
柯里化可以有多个参数列表,例如def a(x:Int(y:Int):Int={x+y}。
2.柯里化的注意要点
使用柯里化的过程中需要注意的地方有三点。
第一点:不能传递部分参数。在使用柯里化传值时需要传递全部参数,不可以只传递部分参数。
第二点:可以利用隐式参数传递部分值。这一点在介绍隐式转换时会详细说明。
第三点:不能返回新的函数。这一点与部分应用函数相对照,稍后将会详细说明。
相关代码如下:
object Test14_1 {
//定义函数的方式
//1标准化方式:def 函数名()
//2字面量方式:var fn = ()=>
//3柯里化方式:def fn(x:Int,y:Int.z:Int) => {} 把多个参数分开,一个一个写
def fn(x:Int)(y:Int)(z:Int)={
println(x,y,z)
}
def main(args: Array[String]): Unit = {
var f = fn(1)(2)(_)//占位符
f(30)
}
}