美文网首页
Scala中的闭包

Scala中的闭包

作者: 量U移动广告归因 | 来源:发表于2021-07-23 21:23 被阅读0次
  • 笔者认为 Scala 的闭包是一种介于全局变量和函数局部私有变量之间的数据访问机制
  • 闭包是一个函数与其相关的引用环境组合的一个整体
  • 闭包中引用的环境变量是私有的不会被外部环境所更改,但是看起来又仿佛是全局性的,每次调用都能访问到,内存并不会被释放掉
object closure{

  def main(args: Array[String]): Unit = {
    var x  = 10
    val f = plus(x)
    println(f(10))
    x = 20
    println(f(10))  //结果还是输出20
  }

  def plus(x:Int):Int=>Int = {
    (y:Int)=>x + y
  }
}

上面这段代码很能说明问题,即使外部 x 变量的值发生了更改,但是闭包函数的输出值还是没有发生变化, 说明这个闭包变量已经跟外部变量割断联系了,但函数运行结束也不会释放掉,就好像固化在了某个地方一样

相关文章

  • 深入理解 Scala 中的闭包(Closures)

    摘要 本文通过 Scala 语言来实现一个简单的闭包,并且通过 Opcode 来深入理解 Scala 中闭包的实现...

  • Scala中闭包

    在Scala中,函数引入传入的参数是再正常不过的事情了,比如(x: Int) => x > 0中,唯一在函数体x ...

  • Scala中的闭包

  • Scala中的闭包

    笔者认为 Scala 的闭包是一种介于全局变量和函数局部私有变量之间的数据访问机制 闭包是一个函数与其相关的引用环...

  • Spark 闭包 vs scala 闭包

    https://github.com/codlife/SparkDeepDoc/blob/master/Spark...

  • scala闭包函数

    闭包是一个函数,它返回值取决于在此函数之外声明的一个或多个变量的值。 以下代码是一个匿名函数。 val m=(i:...

  • Scala编程基础13:Scala闭包

    闭包是一个函数,返回值依赖于声明在函数外部的一个或者多个变量。闭包通常来讲可以简单的认为是可以访问一个函数里面的局...

  • scala 包和引入和this.type

    1.scala包 scala的包和Java中的包的目的是相同的:管理大型程序中的名称。要增加条目到包中,可以将其包...

  • scala函数和闭包

    Function and closure

  • Scala的函数和闭包

    函数(Functions) 函数在 Scala 中除了方法(methods)之外还有多种形态的存在,局部函数(lo...

网友评论

      本文标题:Scala中的闭包

      本文链接:https://www.haomeiwen.com/subject/zqtpmltx.html