Scala学习笔记17【Scala偏函数】

package com.yl.Scala

object ScalaTest {
  def main(args: Array[String]){

    val aList = List(1, 3, 5, 7, 9)
    aList.foreach { x => print(x) }
    println
    aList.foreach { print(_)} //“_”不是单个参数的占位符,它是整个参数列表的占位符。
    println
    aList.foreach { print _ }  //可以这样写,要记住print和_之间需要一个空格
    println
    aList.foreach { print }  //也可以这样写,Scala允许仅在需要函数类型的地方才能省略这个仅用的_。

    /* 以上面这种方式使用下划线时,也就是在写一个偏函数。 偏函数是一种表达式,不需要提供函数需要的所有参数。 Scala需要指定显示省略的函数参数,尽管标志简单到仅用一个‘_’。 */

    println
    def sum (a: Int, b: Int, c: Int) = a + b + c 
    val aSum = sum _      //代表三个参数缺失,调用时需要3个参数
    println("aSum(1, 2, 7) = " + aSum(1, 2, 7))

    val bSum = sum(1, _: Int, 88)  //中间参数缺失,调用仅需1个参数就行了
    println("bSum(2) = " + bSum(2))


  }
}

运行结果:

13579
13579
13579
13579
aSum(1, 2, 7) = 10 bSum(2) = 91 

你可能感兴趣的:(scala,偏函数)