一天学完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版本)就结束了


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


欢迎一键三连,谢谢。


相关文章
|
11月前
|
人工智能 自然语言处理 Java
DeepSeek 满血版在 VScode 和 IDEA 中怎么用?手把手教程来了
沉默王二分享了通义灵码的使用教程,这款插件集成了DeepSeek-R1和Qwen等模型,支持Java、Python、Go等多种编程语言,适用于IDEA、VSCode等开发环境。它不仅能提供智能问答、代码补全和Bug修复功能,还能通过“AI程序员”实现多文件代码修改。体验流畅,算力充足,无需担心限流问题。文章详细介绍了安装步骤及各项功能的实际操作,展示了其在提升开发效率方面的强大实力。目前,通义灵码正持续优化,未来将带来更多惊喜。
2830 1
|
6月前
|
IDE Linux 开发工具
IntelliJ IDEA最新版安装下载教程及安装教程(附安装包)
本文介绍IDEA的下载与安装教程,包含获取下载地址、安装步骤及激活方法。需注意安装路径为英文目录,运行激活脚本时需管理员权限。按指引操作即可完成激活并使用。
7169 0
|
Java 应用服务中间件 API
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
1459 78
|
人工智能 自然语言处理 Java
IDEA中使用DeepSeek满血版的手把手教程来了!
本文主要介绍阿里云推出的AI编码助手——通义灵码在代码编写、智能问答、bug修复等方面的功能。
IDEA中使用DeepSeek满血版的手把手教程来了!
|
人工智能 自然语言处理 Java
DeepSeek 满血版在 IDEA 中怎么用?手把手教程来了
DeepSeek 满血版在 IDEA 中怎么用?手把手教程来了
268 3
|
人工智能 自然语言处理 Java
DeepSeek 满血版在 IDEA 中怎么用?手把手教程来了
DeepSeek 满血版在 IDEA 中怎么用?手把手教程来了
|
人工智能 自然语言处理 Java
DeepSeek 满血版在 IDEA 中怎么用?手把手教程来了
DeepSeek 满血版在 IDEA 中怎么用?手把手教程来了
|
人工智能 自然语言处理 Java
IDEA中使用DeepSeek满血版的手把手教程来了!
IDEA中使用DeepSeek满血版的手把手教程来了!
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
1513 0
|
Java 程序员 编译器
Scala 基础语法
Scala 基础语法
193 2