函数进阶

26 阅读1分钟

一、函数的字面量语法**

函数的字面量语法,另一种定义函数的方式

相对于使用def来说 它:

  1. 省略了返回值类型
  2. 省略了函数名 现在就是变量
  3. 多一个 =>

它省略了def,函数名以及函数的返回值类型。

函数字面量的简化方式有两种方式:

    1. 第一种方式为:_(占位符)。如果函数中的参数在方法体中只使用了一次,可以用_替换。
    1. 第二种方式为:只有一个表达式时,可以省略括号。

语法:var 变量 = (参数列表) => {方法体}

案例一:定义一个函数 求两个数的和

// 定义一个函数 求两个数的和
def sum1(x:Int, y:Int): Int = {
  x + y
}

val sum2 = (x:Int, y:Int) => { x + y}

def main(args: Array[String]): Unit = {
  println(sum1(10,20))
  println(sum2(10,20))
}

二、部分应用函数

如果一个函数包含多个参数,对该函数传递部分参数使得这个函数返回一个函数,那么这种函数叫做部分应用函数。

案例二:定义一个函数 它用来计算三个整数的和

//  def sum(a:Int, b:Int, c:Int): Int = {
//    a + b +c
//  }

  val sum2 = (a:Int, b:Int, c:Int) => a + b + c


  def main(args: Array[String]): Unit = {
//    println(sum1(10,20,30))

//    println(sum2(10,20))  参数没有给够 会报错!
    var r = sum2(10,20,_)  // _ 表示一个占位符 现在还不知道具体是什么
    // r就是部分应用函数  对sum2 来说 他只有一部分参数
    println(r(50))

    val r1 = sum2(_,20,_)
    println(r1(10,30))
  }