函数的字面量语法

38 阅读1分钟

除了使用def之外的,另一种定义函数的方式

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

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

object inoout56 {
  /*
  函数字面量语法,另一种定义函数的方式
   */
  def sum1(x: Int, y: Int): Int = {
    x + y
  }

//  函数字面量语法
//  相对于使用def来说,它:
//  1.省略了返回值类型
//  2.省略了函数名,现在就是变量名
//  3.多一个 =>
  val sum2 = (x:Int,y:Int) => {x+y}

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

image.png

object inoout57 {
  /*
  函数字面量语法d的简化写法
  1.函数体只有一句,可以省略{}
  2.参数只用一次=,可以用_代替参数名,指定类型
   */
  val sum1 = (x:Int,y:Int) => {x+y}
  val sum2 = (x:Int,y:Int) => x+y

  val sum3:(Int,Int) => Int = _+_
  def main(args:Array[String]):Unit = {
    println(sum1(10,20))
    println(sum2(10,20))
    println(sum3(10,20))
  }
}

image.png