Scala - 闭包

Scala - 闭包 首页 / Scala入门教程 / Scala - 闭包

closure 闭包是一个函数,其返回值取决于在此函数外部声明的一个或多个变量的值。

以下带有匿名函数的代码。

val multiplier=(i:Int) => i * 10

这里,函数体中使用的唯一变量i * 10是i,它被定义为函数的参数,尝试以下代码-

val multiplier=(i:Int) => i * factor

乘数中有两个自由变量: i 和 factor ,其中之一是函数的形式参数,因此,每次调用乘数时,它将绑定到一个新值。但是, factor 不是正式参数,那么这是什么?让我们再添加一行代码。

链接:https://www.learnfk.comhttps://www.learnfk.com/scala/scala-closures.html

来源:LearnFk无涯教程网

var factor=3
val multiplier=(i:Int) => i * factor

现在 factor 对函数外部但在封闭范围内的变量进行了引用,该函数引用 factor 并每次读取其当前值。

请尝试以下示例程序。

无涯教程网

object Demo {
   def main(args: Array[String]) {
      println( "multiplier(1) value=" +  multiplier(1) )
      println( "multiplier(2) value=" +  multiplier(2) )
   }
   var factor=3
   val multiplier=(i:Int) => i * factor
}

将上述程序保存在 Demo.scala 中。以下命令用于编译和执行该程序。

\>scalac Demo.scala
\>scala Demo
multiplier(1) value=3
multiplier(2) value=6

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

MySQL实战45讲 -〔林晓斌〕

从0开始做增长 -〔刘津〕

Kafka核心技术与实战 -〔胡夕〕

分布式系统案例课 -〔杨波〕

动态规划面试宝典 -〔卢誉声〕

手把手带你写一门编程语言 -〔宫文学〕

深入C语言和程序运行原理 -〔于航〕

超级访谈:对话汤峥嵘 -〔汤峥嵘〕

Python实战 · 从0到1搭建直播视频平台 -〔Barry〕

好记忆不如烂笔头。留下您的足迹吧 :)