阅读背景:

Scala的高阶函数和柯里化的函数_weixin_30532759的博客

来源:互联网 

一:高阶函数:1.函数作为参数 2.函数的返回值为参数

/**
  * @Author:Alex_lei
  * @Description: 高阶函数,将函数作为函数传入
  */
object High_function {
  def main(args: Array[String]): Unit = {
    val l = List(1,2,3,4)
    println(getMax(l,g))

    /**
      * 返回的fun1是函数,可以继续根据fun1的参数列表进行调用
      */
    val fun1 = returnfunc(true,"Ai")
    println(fun1("alex","Bye"))
  }

  /**
    * 函数作为参数传入函数
    * @param l 列表
    * @param g 函数
    * @return
    */
  def getMax(l:List[Int] ,g:Int => Int) = {
    l.map(g)
  }

  def g(x:Int):Int = {
    x+1
  }

  /**
    * 返回函数
    * @param flag 布尔值
    * @param str 字符串
    * @return 函数(s1:String,s2:String) => s3:String
    */
  def returnfunc(flag:Boolean,str:String) :(String,String) => (String) = {
    var s = ""
    if(flag)
      s = "alex"
    else
      s = "Lily"
    (a:String,b:String) => str+" Hello world "+b

  }

}
/**
  *



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: