当前位置: 首页 > news >正文

大数据面试-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.lryc.cn/news/378818.html

相关文章:

  • 76.最小覆盖子串
  • 深度学习算法informer(时序预测)(三)(Encoder)
  • HTML和CSS基础(一)
  • 低代码平台教你两步把SQL直接转换为RESTful API
  • JavaWeb阶段学习知识点(二)
  • 数据结构【二叉树】
  • Vue P17-54
  • 【自动驾驶】从零开始做自动驾驶小车
  • 一文让你彻底搞懂什么是VR、AR、AV、MR
  • Python设计模式 - 简单工厂模式
  • L55--- 257.二叉树的所有路径(深搜)---Java版
  • 智慧园区解决方案PPT(53页)
  • Windows安装MySQL(8.0.37)
  • 永磁同步电机驱动死区补偿
  • 智能体合集
  • 智能农业管理系统设计
  • Matlab的Simulink系统仿真(simulink调用m函数)
  • C语言中操作符详解(一)
  • 【论文阅读】Multi-Camera Unified Pre-Training via 3D Scene Reconstruction
  • 深入了解NumPy的原理与使用
  • Linux Centos 环境下搭建RocketMq集群(双主双从)
  • 全网最全postman接口测试教程和项目实战~从入门到精通
  • 【ARM】MDK Debug模式下Disassembly窗口介绍
  • 灵活的招聘管理系统有五种方法帮助成功招聘
  • 美摄科技匿名化处理解决方案,包含模糊、同色、马赛克、效果遮挡等各种形式
  • O2OA的数据库数据库配置-使用不同用户访问Oracle时报错-表或视图不存在
  • leetcode56 合并区间
  • Elasticsearch扩展性探索:水平扩展与集群管理
  • node版本过高出现ERR_OSSL_EVP_UNSUPPORTED错误
  • 不得不看的AI前沿理论与技术: LLM-Assisted Light大模型