1. 程式人生 > >Scala學習筆記(六):本地函式、頭等函式、佔位符和部分應用函式

Scala學習筆記(六):本地函式、頭等函式、佔位符和部分應用函式

本地函式

可以在方法內定義方法,這種方法叫本地函式,本地函式可以直接訪問父函式的引數

  def parent(x: Int, y: Int): Unit ={
    def child(y:Int) = y + 1
    val z = child(y)
    println(s"x: $x, z: $z")
  }
  parent(1, 2)

頭等函式

Scala的函式時頭等函式,不僅可以定義和呼叫,還可以寫成匿名字面量,並把它們當成值傳遞,如

val a = (x: Int) => x + 1
println(a(1))

佔位符語法

如果每個引數在函式字面量內僅出現一次,可以使用下劃線當做一個或更多引數的佔位符

  val ints = List(1, 2, 3)
  ints.filter(_ > 1)

部分應用函式

  def sum(x: Int, y: Int, z: Int): Int = x + y + z
  // _代表全部引數列表
  val a = sum _
  println(a(1, 2, 3)) //6

  // 部分應用函式
  val b = sum(1, _: Int, 2)
  println(b(4))  //7