一天学完spark的Scala基础语法教程五、闭包(idea版本)

简介: 一天学完spark的Scala基础语法教程五、闭包(idea版本)

创建测试类【day1/demo5.scalc】,类型为【object】



image.png


image.png


image.png

Scala 闭包

闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。


闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。


如下面这段匿名的函数:


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

函数体内有一个变量 i,它作为函数的一个参数。如下面的另一段代码:


val mul = (i:Int) => i * fac

在 multiplier 中有两个变量:i 和 factor。其中的一个 i 是函数的形式参数,在 multiplier 函数被调用时,i 被赋予一个新的值。然而,factor不是形式参数,而是自由变量,考虑下面代码:


var fac = 3  

val mul = (i:Int) => i * fac

这里我们引入一个自由变量 factor,这个变量定义在函数外面。


这样定义的函数变量 multiplier 成为一个"闭包",因为它引用到函数外面定义的变量,定义这个函数的过程是将这个自由变量捕获而构成一个封闭的函数。


示例:


package day1
object demo5 {
  def main(args: Array[String]) {
    println( "mul(1) value = " +  mul(1) )
    println( "mul(2) value = " +  mul(2) )
  }
  var fac = 5
  val mul = (i:Int) => i * fac
}

image.png


总结

到这里有关一天学完spark的Scala基础语法教程五、闭包(idea版本)就结束了


闭包可能平时用不上,所以大家对他不了解。其实也没什么。希望能给大家带来一定的帮助。


欢迎一键三连,谢谢。


相关文章
|
9月前
|
SQL 分布式计算 Spark
Spark 教程系列
Spark 教程系列
71 0
|
3月前
|
Java 程序员 编译器
Scala 基础语法
Scala 基础语法
40 2
|
9月前
|
程序员 Scala
scala的基础语法
scala的基础语法
82 3
|
7月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
482 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
7月前
|
分布式计算 运维 Serverless
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
在大数据快速发展的时代,流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台,它不仅简化了实时数据处理流程,还免去了服务器管理的烦恼,提升了效率。本文将指导您使用EMR Serverless Spark提交PySpark流式任务,展示其在流处理方面的易用性和可运维性。
327 7
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
|
6月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
266 0
|
6月前
|
分布式计算 Java Linux
【Deepin 20系统】Linux 系统安装Spark教程及使用
在Deepin 20系统上安装和使用Apache Spark的详细教程,包括安装Java JDK、下载和解压Spark安装包、配置环境变量和Spark配置文件、启动和关闭Spark集群的步骤,以及使用Spark Shell和PySpark进行简单操作的示例。
110 0
|
8月前
|
Linux Scala 开发者
Scala 多版本下载指南
Scala 多版本下载指南
394 1
|
8月前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
92 0
|
8月前
|
分布式计算 Hadoop Scala
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
71 0