scala函数demo

/**
  * Created by root
  * Description : 柯里化函数,偏应用函数,匿名函数,高阶函数
  */
object FunctionTest {
  def main(args: Array[String]): Unit = {

    //柯里化函数
    def add(x:Int)(y:Int):Int= x + y  //等价 def add(x:Int,y:Int):Int = x + y

    println(add(1)(2))

    //偏应用函数,每次固定与100相加
    val add1 = add(100)_;
    println(add1(10))
    println(add1(20))

    // 求a到b之间的累加和
    var s =0;
    def sum(a:Int, b:Int):Int={
      for (i <- a to b){
        s += i;
      }
      s
    }

    println(sum(1,5))

    // 偏应用函数,每次从开始位置10累加
    val sumStartIndex = sum(10,_:Int)
    println(sumStartIndex(100))

    // 匿名函数
    var mul = (x:Int,y:Int) => x * y
    println(mul(2,3))

    def add3(x:Int,y:Int):Int= x + y
    // 高阶函数,接收一个函数类型
    def foo(f:(Int,Int)=>Int,x:Int,y:Int)={
        f(x,y)
    }

    println(foo(add3,1,5))


  }

}

 

posted @ 2017-12-06 14:09  麻雀虽小五脏俱全  阅读(309)  评论(0编辑  收藏  举报