大数据面试-Scala

谈谈scala的闭包、柯里化、高阶函数
如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。
闭包在函数式编程中是一个重要的概念,广泛用于高阶函数、柯里化等技术中。

函数柯里化:把一个参数列表的多个参数,变成多个参数列表;
函数柯里化,其实就是将复杂的参数逻辑变得简单化,函数柯里化一定存在闭包。

高阶函数:1)函数可以作为值进行传递
2)函数可以作为参数进行传递
3)函数可以作为函数返回值返回

package com.scala.Function
object test_bibao {def main(args: Array[String]): Unit = {//普通函数def makeMultiplier(factor:Int):Int={return factor+1}println(makeMultiplier(1))//闭包函数:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包def makeMultiplier1(factor: Int): Int=>Int = {// 定义一个闭包函数//val multiplier = (x: Int) => x * factor  //匿名函数def multiplier(x:Int):Int={x * factor}// 返回闭包函数multiplier}println(makeMultiplier1(1)(1))//闭包函数 + 匿名函数def makeMultiplier2(factor: Int): Int => Int = {// 定义一个闭包匿名函数// val multiplier2=(x:Int)=>{x*factor}val multiplier2 =(x:Int)=>x*factor// 返回闭包函数multiplier2}println(makeMultiplier2(1)(1))//函数柯里化(柯里化一定会产生闭包)def makeMultiplier3(factor: Int)(x: Int) = {x * factor}println(makeMultiplier3(1)(2))}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

社区团购系统智慧门店物流配送系统开发,支持小程序公众号。

目录 前言: 一、为什么要做社区团购小程序? 二、怎么做一个社区团购小程序? 三、制作属于自己的社区团购小程序有什么好处? 总结: 前言: 社区团购是针对小区居民或群体开发的在线购物平台,…

python之eval函数使用详解

eval() 是 Python 内置的一个函数,它可以将字符串最外侧的引号去掉,并且按照python语句方式执行去掉引号后的代码(去掉引号后,代码可能还是字符串,可能是数字,可能是列表,可能是执行函数的代码块…

win10手动安装stable-diffusion-webui

目录 1.python下载安装 2.git下载安装 3.stable-diffusion-webui下载 4.安装s-d-webui的依赖包(用国内镜像提速) 5.git下载的stable-diffusion-webui,依赖包提示已安装,但运行webui-user.bat后,又开始下载 6.修…

RedTail 僵尸网络积极利用新漏洞发起攻击

自从 Palo Alto 的 PAN-OS 漏洞公开披露以来,研究人员发现已有攻击者将该漏洞纳入武器库中。 CVE-2024-3400 2024 年 4 月 11 日,Palo Alto 发布公告称基于 PAN-OS 的产品中存在的 0day 漏洞已经被攻击者利用,安全公司 Volexity 已经发现了…

配置 python 脚本操作Excel 环境

在已装python的前提下 一、安装依赖库 pip install pandas pip install openpyxl安装完后,可以在 Python 中运行以下命令来查看 pandas 或 openpyxl 的安装路径: import pandas as pd print(pd.__path__)import openpyxl print(openpyxl.__path__)二、测…

LearnOpenGL - Android OpenGL ES 3.0 绘制纹理

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好,窗口LearnOpenGL 笔记 - 入门 04 你好,三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

【C/C++】实现高性能日志轮转功能,已实测

基本实现 在C语言中实现日志文件轮转功能,你需要手动编写代码来处理文件的重命名、压缩和删除。下面是一个简单的C语言程序示例,它演示了如何实现基本的日志文件轮转功能。这个程序会检查日志文件的大小,如果超过预设的大小限制,…

光纤中的数值 2.405 是怎么一回事?

在光纤通信中,光线的传播依赖于纤芯和包层之间的折射率差异。 即,当光线从纤芯入射到界面上时,如果入射角大于临界角 θ0,将发生全反射,没有光能量透射至包层而泄漏出去,此即光纤导光原理。 反映到光纤的端面,在光纤端面的光线,当入射角必须小于光纤的孔径角 α0 ,此时…

高效管理:好用的项目管理工具推荐

在当今快速变化的商业环境中,高效的项目管理工具能够显著提升团队的生产力和项目的成功率,还能有效地跟踪项目进度。所以,一款优秀的项目管理工具首先要具备先进的项目管理理念,支持多种研发管理和项目管理方法论,才能…

名称申请不了商标,可以受保护不!

前几天个网友说要申请注册个商标名称,发来名称让普推商标知产老杨帮忙检索了下,发现有同名的被驳回,而且是做过驳回复审被驳回,而且是绝对理由驳回的,易使消费者对商品的品质等特点产生误认,不得作为商标使…

【工具】全国省市县SQL脚本(MySQL)

目录 省份建表插入数据 城市建表插入数据 测试 省份 建表 CREATE TABLE province (id int(11) NOT NULL,create_time datetime(0) NOT NULL COMMENT 创建时间,update_time datetime(0) NULL DEFAULT NULL COMMENT 修改时间,valid char(1) CHARACTER SET utf8 COLLATE utf8_ge…

IntelliJ IDEA 2024 mac/win版:编程利器,智慧之选

IntelliJ IDEA 2024是一款由JetBrains精心打造的集成开发环境(IDE),专为Java等编程语言量身打造,同时支持多种其他语言,为开发者提供了卓越的开发体验。 IntelliJ IDEA 2024 mac/win版获取 这款IDE凭借其出色的智能化和高效性,赢…

红军九大技战法

一、动态对抗,线上社工持续信息追踪 发起攻击前,发起攻击前,尽可能多的搜集攻击目标信息,做到知己知彼,直击目标最脆弱的地方。攻击者搜集关于目标组织的人员信息、组织架构、网络资产、技术框架及安全措施信息&#x…

Python自动化(3)——鼠标模拟

Python自动化(3)——鼠标模拟 前台鼠标模拟 鼠标模拟和键盘模拟类似,也是分前台和后台模拟。话不多说直接,上代码: import time import win32api import win32con import win32gui from ctypes import *MOUSEEVENTF_LEFTDOWN 0x2 MOUSEEV…

java基于ssm+jsp 高校四六级报名管理系统

1前台首页功能模块 高校四六级报名管理系统,在系统首页可以查看首页、四六级报名、新闻资讯、我的、跳转到后台、在线客服等内容,如图1所示。 图1系统功能界面图 学生登录、学生注册,在注册页面可以填写学号、密码、姓名、学院、班级、手机、…

决策树算法详细介绍原理和实现

决策树是一种常用的分类算法,它通过一系列的问题将数据分割成不同的分支,最终确定数据属于哪个类别。下面是决策树的原理、实现方式以及一个案例实现的详细介绍。 决策树原理 特征选择:决策树的构建过程首先需要选择一个特征作为节点&#…

hostname: Name or service not known

rootuser-PC:~# hostname -i hostname: Name or service not known rootuser-PC:~# vi /etc/hosts 10.170.200.148 node148 ## 设置hostname rootuser-PC:~# hostnamectl --static set-hostname node148 ## 再执行的hostname的时候就不会报错了. rootuser-PC:~# hostname…

yolov8中配置文件args.yaml解读

task: 指定任务类型,这里是 detect,表示进行目标检测任务。mode: 指定模式,train 表示训练模式。model: 模型权重文件的路径,这里是预训练模型权重的路径。data: 数据集配置文件的路径,指定了训练和验证数据的位置和格…

现货黄金应用价格行为交易所需要的环境

在现货黄金投资中,投资者常用价格行为交易法来分析走势。简单来说,这种方法就是只看K线和支撑阻力位,顶多加一些简单的指标,以此构建分析和交易的系统。由于价格行为简单易学,现在的投资者或多或少都在使用这个方法。但…

短视频批量下载工具源码逻辑解析(软件)

短视频批量提取第三篇关于视频提取下载的思路 一:概述 因为上一篇不完整,这里其实就是补充第二篇关于源码思路。这里不针对视频评论的提取,只对视频分享链接批量导入下载进行思路解析 二:难点 通常情况下如果直接访问详情页进行…