Scala 惰性求值
Scala 惰性求值
- 1、主动求值
- 2、惰性求值
1、主动求值
系统一旦启动,所有的值都计算出来
好处:后面使用的时候速度比较快
坏处:拖慢系统的启动速度,浪费内存
object LazyDemo {val a :Int = {println("aaaaa"); 10}def main(args: Array[String]): Unit = {}
}
输出:aaaaa
2、惰性求值
只能用于 val
object LazyDemo {lazy val a :Int = {println("aaaaa"); 10}def main(args: Array[String]): Unit = {}
}
不输出任何值
当第一次使用常量 a 时再进行计算,未使用时不求值
object LazyDemo {val a1 :Int = {println("a1"); 10}lazy val a2 :Int = {println("a2");10}def a3 ={println("a3");10}def main(args: Array[String]): Unit = {println(a1)println(a1)println(a1)println("------")println(a2)println(a2)println(a2)println("-------")println(a3)println(a3)println(a3)}
输出:
1)a1 10 10 10
2)a2 10 10 10
3)a3 10 a3 10 a3 10
Scala 惰性求值相关推荐
- java惰性计算原理_利用 Lambda 表达式实现 Java 中的惰性求值
Java 中惰性求值的潜能,完全被忽视了(在语言层面上,它仅被用来实现 短路求值 ).更先进的语言,如 Scala,区分了传值调用与传名调用,或者引入了 lazy 这样的关键字. 尽管 Java 8 ...
- 惰性求值 php,详细介绍C#函数式编程的示例代码
public double MemoryUtilization() { //计算目前内存使用率 var pcInfo = new ComputerInfo(); var usedMem = pcInf ...
- 《Haskell并行与并发编程》——第2章,第2.1节惰性求值和弱首范式
本节书摘来自异步社区<Haskell并行与并发编程>一书中的第2章,第2.1节惰性求值和弱首范式,作者[英]Simon Marlow,更多章节内容可以访问云栖社区"异步社区&qu ...
- python中and和or的惰性求值特点_惰性求值和yield-Python
惰性求值 惰性求值(Lazy evaluation)是在需要时才进行求值的计算方式.表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值. 除可以得到性能的提升(更小的内存占用)外,惰性 ...
- 让Python中类的属性具有惰性求值的能力
起步 我们希望将一个只读的属性定义为 property 属性方法,只有在访问它时才进行计算,但是,又希望把计算出的值缓存起来,不要每次访问它时都重新计算. 解决方案 定义一个惰性属性最有效的方法就是利 ...
- python惰性求值的特点_C#教程之C#函数式编程中的惰性求值详解
https://www.xin3721.com/eschool/python.html 惰性求值 在开始介绍今天要讲的知识之前,我们想要理解严格求值策略和非严格求值策略之间的区别,这样我们才能够深有体 ...
- python中and和or的惰性求值特点_Python中的惰性评估
一个名为python pattern和Wikipedia的github存储库告诉我们什么是惰性评估. 将expr的评估延迟到需要其值为止,并避免重复评估. python3中的cached_proper ...
- 惰性求值——lodash源码解读
前言 lodash受欢迎的一个原因,是其优异的计算性能.而其性能能有这么突出的表现,很大部分就来源于其使用的算法--惰性求值. 本文将讲述lodash源码中,惰性求值的原理和实现. 一.惰性求值的原理 ...
- python惰性求值效果_让Python中类的属性具有惰性求值的能力
起步 我们希望将一个只读的属性定义为 property 属性方法,只有在访问它时才进行计算,但是,又希望把计算出的值缓存起来,不要每次访问它时都重新计算. 解决方案 定义一个惰性属性最有效的方法就是利 ...
最新文章
- Spring框架中的设计模式(二)
- 刚刚入手一台G11,发短信是老是出现“发送自HTC手机”字样
- 华为笔记本matebook13_为什么我不推荐华为Matebook 13给职场新人/小白?
- html滚动条样式自定义,CSS3自定义滚动条样式
- .NET C# 发送邮件内容嵌入图片
- ubuntu声音太小的解决方案
- java按键修改_修改键位映射,打造自己的个性键盘 [转自赵翔鹏的Blog]
- amazon s3_在Amazon S3上托管静态网站
- VMware 12 专业版永久许可证密钥
- Xshell 6免费版
- linux下载安装命令
- java gson使用_Java 如何使用Gson解析JSON数组
- 在Markdown中绘制思维导图
- 浏览器首页被雨林木风篡改( /hao.ylmf.com/u7654.html)
- php实现倒计时,PHP实现倒计时功能
- WITH TIES语句(SQL)
- js获取浏览器高度和宽度值(多浏览器)
- USDP使用笔记(五)设置Hive on Tez解决return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask问题
- 测试一个教室和一个椅子
- 80亿美元贷款细节曝光 阿里“移联网布局+大数据蓝图”加码IPO