标签: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
}
}
标签:object main int 变量 fun rgs 闭包 pre 函数
原文地址:https://www.cnblogs.com/yxj0728/p/9281773.html