十月十六日课堂笔记

40 阅读1分钟

1.函数字面量语法

object class2 {
  // 定义一个函数,计算两数的和
  def sum(x: Int, y: Int): Int = {
    x + y
  }

  // 字面量语法 看起来就像给变量赋值

  // val a = 1

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

  def main(args: Array[String]): Unit = {
    val a = 2
    val n = 5
    println(s"a + n = ${sum1(a, n)}")
  }

}

字面量是一个常量(定义),(参数列表>={方法体}----语法

2.特殊写法

object class2 {
  // 定义一个函数,计算两数的和
  def sum(x: Int, y: Int): Int = {
    x + y
  }

  // 字面量语法 看起来就像给变量赋值

  // val a = 1

  val sum1 = (x: Int, y: Int) => {
    x + y
  }
  // 1. 函数只有一句代码,可以省略 { }
  // 2. 如果参数只使用了一次,那么可以用 _ 来代替。要加上参数的类型

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

  def main(args: Array[String]): Unit = {
    val a = 2
    val n = 5
    println(s"$a + $n = ${sum1(a, n)}")
    println(s"$a + $n = ${sum2(a, n)}")
    println(s"$a + $n = ${sum3(a, n)}")
    println(s"$a + $n = ${sum4(a, n)}")
  }

}
object class2 {
  // 定义一个函数,计算两数的和
  // 定义一个字面量函数,计算两个数的较大者
  val getMax = (x: Int, y: Int) => if (x > y) x else y
  // 定义一个字面量函数,计算两个数的较小者
  val getMin = (x: Int, y: Int) => if (x < y) x else y

  // test 这个函数,它的第一个参数是一个函数。
  val test = (x: (Int, Int) -> Int, a: Int, b: Int) => {
    println("test被调用")
    println(x(a, b))
  }

  def main(args: Array[String]): Unit = {
    test(getMax, 1, 2)
  }

}