目标
-
函数字面量;
-
部分应用函数
格式
定义函数的方式一:
def getSum1=(x:Int,y:Int)=>{
x+y
}
定义函数的方式二:字面量
val getSum1=(x:Int,y:Int)=>{
x+y
}
Scala的函数字面量的简化方式有两种方式:
- _(占位符)。如果函数中的参数在方法体中只使用了一次,可以用_替换。
- 只有一个表达式时,可以省略括号。
val sum1 = (x:Int, y:Int) =>{x+y}
val sum2 = (x:Int, y:Int) => x+y
val sum3:(Int, Int)=>Int = _ + _
val sum4 = (_: Int) + (_: Int)
//省略{}
val getSum1 =(x:Int,y:Int)=>x+y
//使用_来替代形参
val getSum2 =(_:Int)+(_:Int)
//使用_来替代形参.(Int,Int就是getSum3的类型)
val getSum3::(Int,Int)=>Int=_+_
把一个函数,当做参数,传递给另一个函数
* 把一个函数 当做参数 传递给另一个函数
*/
// 定义两个字面量函数。(Int, Int) => Int 看成一种数据类型
val f1: (Int, Int) => Int = _ + _
// val a:Int = 1
val f2: (Int, Int) => Int = _ * _
// 定义一个函数,它有三个参数
// 参数1: 类型是 (Int,Int)=>Int 。它表示这里需要一个函数
def test(fn: (Int, Int) => Int, x: Int, y: Int): Int = {
fn(x, y)
}
def main(args: Array[String]): Unit = {
println(test(f1, 10, 20)) ==== f1(10,20)
println(test(f2, 10, 20))
}
}
* 把一个函数 当做参数 传递给另一个函数
*/
// 定义两个字面量函数。(Int, Int) => Int 看成一种数据类型
val f1: (Int, Int) => Int = _ + _
// val a:Int = 1
val f2: (Int, Int) => Int = _ * _
// 定义一个函数,它有三个参数
// 参数1: 类型是 (Int,Int)=>Int 。它表示这里需要一个函数
def test(fn: (Int, Int) => Int, x: Int, y: Int): Int = {
fn(x, y)
}
def main(args: Array[String]): Unit = {
println(test(f1, 10, 20)) ==== f1(10,20)
println(test(f2, 10, 20))
}
}
部分应用函数
如果一个函数需要3个参数,而我们只给了2个参数,会怎么样?
def getSum(a: Int, b: Int, c: Int): Int = {
a + b + c
}
def main(args: Array[String]): Unit = {
println(getSum(10, 20, 30))
val t = getSum(10, 20, _)//t就是部分应用函数!
val t1 = getSum(_, 20, _)//t就是部分应用函数!
println(t(60))
println(t1(20, 50))
}
- 完结撒花 !!!!!!!!!!
- 制作不易 希望·一键三连 在此感谢关注的粉丝宝宝
- 新来的宝宝可以关注下主播哟!!!!!