scala中函数简单使用记录

object funcHighLevel {

  def main(args: Array[String]): Unit = {
    // 创建一个匿名函数
    val sayFunc = (name: String) => println("hello ," + name)
    // 定义一个方法传入一个函数
    def greeting(func: (String) => Unit, names: String) {
      func(names)
    }

    // 在定义一个 name,age是参数
    val induceMyself = (name:String ,age:Int) => {
      println("hello,my name is " + name +",and i'm " + age + " years old.")
    }
    // 这里的fun是函数名,可以调整修改
    def introduce(fun :(String , Int) => Unit , name:String , age:Int): Unit = {
      fun(name , age)
    }

    greeting(sayFunc, "yxj")

    //
    introduce(induceMyself , "yxj" , 30)


    val rs = Array(2, 3, 4, 5, 6).map((num: Int) => {
      num * num
    })
    println(rs.mkString(","))

    // 高阶函数的另一个功能,就是将函数作为返回值
    def getGreetingFunc(msg:String) = (name:String) => println(msg + " , " + name) // 传入msg,返回一个函数,参数是name
    val greetingFunc = getGreetingFunc("hello") // 调用先返回的是一个函数
    greetingFunc("yxj") // 匿名函数具体调用和执行


  }

}

  

posted @ 2018-07-08 23:50  小叶啊  阅读(204)  评论(0编辑  收藏  举报