字面量语法

58 阅读1分钟

函数的字面量语法

另一种定义函数的方式

相对于def来说,它:

1.省略了返回值类型

2.省略了函数名,现在就是变量名

3.多一个 =>

eg:

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

val sum3:(Int, Int) => Int = _ + _ // _代表任意参数,相当于sum2


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

eg:

/*
  部分应用函数

  定义一个函数,用它来计算三个整数的和
  def sum1(a: Int, b: Int, c: Int): Int = {
    a+b+c
  }
  */
  /*
  函数字面量语法
  相对于def来说,它:
  1.省略了返回值类型
  2.省略了函数名,现在就是变量名
  3.多一个 =>
   */

  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))
     */
    val r = sum2(10,20, _)  // _ 表示一个占位符:现在还不知道具体是什么
    println(r(50))

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