码迷,mamicode.com
首页 > 其他好文 > 详细

scala中的闭包简单使用

时间:2018-07-09 00:34:38      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:object   main   int   变量   fun   rgs   闭包   pre   函数   

object Closure {

  /**
    * scala中的闭包
    * 函数在变量不处于其有效作用域内,还能够对变量进行访问
    *
    * @param args
    */

  def main(args: Array[String]): Unit = {

    def getHelloFunc(msg:String) = (name:String) => println(msg + "," + name)

    val sayHello = getHelloFunc("hello") // 传入msg的值 ,后面sayHello依然可以访问到
    val sayHi = getHelloFunc("hi")

    // 两次条用getHelloFunc,传入不同的msg,创建不同的函数返回
    // 然而msg只是一个局部变量,
    // 在getHelloFunc调用后,还继续存在创建的函数中,当sayHello("yxj")调用时,值为hello的msg保留在了函数内部,可以反复使用
    // 这种变量超出了其作用域,还可以使用的情况,就是闭包

    // scala

    sayHello("yxj") // 打印 hello,yxj
    sayHi("yxj") // 打印 hi,yxj

  }
}

  

scala中的闭包简单使用

标签:object   main   int   变量   fun   rgs   闭包   pre   函数   

原文地址:https://www.cnblogs.com/yxj0728/p/9281773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!