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

scala 学习笔记--闭了个包

object Test01 {
  def main(args: Array[String]): Unit = {
    //普通函数 
    val squ=(x:Int) => x*x 
//    ps:_的简写形式只在1.参数类型已知的情况下才能用--自动推断  2.=> 右边只出现一次的情况
    
    
    //闭包--一旦函数引用了还是外部的变量或常量,那么该函数为闭包函数
    var v=5
    val fun1=mulby(v)
    println(s"v=$v "+fun1(2d))
    v=10
    println(s"v=$v "+fun1(2d))
    val fun2=mulby(v)
    println(s"v=$v "+fun2(2d))
    /*
     * 结果输出:
     * v=5 20.0   当v=5时,外部的变量已被copy到fun1函数内部,称为闭包
         * v=10 20.0    当v=10时,已经不会影响fun1了
         * v=10 30.0    v=10时,创建函数fun2,v的值被copy到fun2内部(闭包)
         * 
     */
  }
  //方法
   def squMethod(x:Int) : Int = x*x
   //高阶函数--一个接受函数参数的函数
   def mulby(fina:Double) = (x:Double) => fina*x+10
   //fina是这个函数的参数,x是另一个函数的参数
   
   //why?--应为可以这样用
   val f1=mulby(10d)
}

 

一旦函数引用了还是外部的变量或常量,那么就称此函数为闭包函数。

转载于:https://www.cnblogs.com/yanghaolie/p/6905081.html

相关文章:

  • JavaScript使用正則表達式
  • Java 修改页面排序条件
  • Redis3.x HA 方案(基于 Sentinel 方式)
  • android自带的处理Bitmap out Memory 的处理,我仅仅是改变了些写法成为自己用的东西...
  • 卫星宽带
  • Tomcat Manager用户名和密码
  • 《嵌入式系统可靠性设计技术及案例解析》读书笔记(四)
  • POJ 1700 经典过河问题(贪心)
  • 猴子 JDFZ模拟赛
  • 从输入URL到页面加载发生了什么
  • Filter配置多个url-pattern
  • 单元测试初入
  • Django 博客开发教程 10 - 页面侧边栏:使用自定义模板标签
  • python爬虫从入门到放弃(六)之 BeautifulSoup库的使用
  • 基于 Postgres 的数据库通过美国政府安全认证
  • [译]如何构建服务器端web组件,为何要构建?
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • Angular2开发踩坑系列-生产环境编译
  • Git同步原始仓库到Fork仓库中
  • HTML中设置input等文本框为不可操作
  • Mac转Windows的拯救指南
  • maven工程打包jar以及java jar命令的classpath使用
  • mongo索引构建
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • vue学习系列(二)vue-cli
  • Webpack 4 学习01(基础配置)
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • - 概述 - 《设计模式(极简c++版)》
  • 回顾 Swift 多平台移植进度 #2
  • 基于游标的分页接口实现
  • 入门级的git使用指北
  • 深入浅出Node.js
  • 突破自己的技术思维
  • 我的业余项目总结
  • 小程序测试方案初探
  • 用Visual Studio开发以太坊智能合约
  • AI算硅基生命吗,为什么?
  • 第二十章:异步和文件I/O.(二十三)
  • #define与typedef区别
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • ./configure,make,make install的作用(转)
  • .NET Core中Emit的使用
  • .net framework profiles /.net framework 配置
  • .net6Api后台+uniapp导出Excel
  • .NET开发者必备的11款免费工具
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @PreAuthorize注解
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce