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
posted @ 2018-12-09 18:06  舒山  阅读(328)  评论(0编辑  收藏  举报