Scala 学习笔记(一)------函数传名调用(call-by-name)
来源:互联网 发布:瓷砖计算软件 编辑:程序博客网 时间:2024/06/05 19:42
Scala的解释器在解析函数参数(function arguments)时有两种方式:
传值调用(call-by-value):先计算参数表达式的值,再应用到函数内部
传名调用(call-by-name):将未计算的参数表达式直接应用到函数内部
在进入函数内部前,传值调用方式就已经将参数表达式的值计算完毕,而传名调用是在函数内部进行参数表达式的值计算的。
这就造成了一种现象,每次使用传名调用时,解释器都会计算一次表达式的值
object Test1{def main(argc: Array[String]) {delayed(time());}def time()={ println("get time:"); System.nanoTime; } def delayed( tt: => Long )={ println("in delayed"); println("parameter: "+tt) tt }}
下面是编译、执行[root@node1 scala]# scalac Test1.scala [root@node1 scala]# scala Test1in delayedget time:parameter: 1826488355705251get time:
传名调用是把函数名字传递过去,使用时才真正执行函数
传值调用是首先计算函数值,然后把值传过去
阅读全文
0 0
- Scala 学习笔记(一)------函数传名调用(call-by-name)
- Scala 函数传名调用(call-by-name)
- scala 传名调用call-by-name
- Scala从零开始:函数参数的传名调用(call-by-name)和传值调用(call-by-value)
- Scala函数传名调用
- Scala传名参数(By-Name)
- scala函数的call-by-name和call-by-value 区别
- call by name 与 call by value in scala
- scala中的call-by-name和call-by-value
- scala中call-by-name和call-by-value
- A simple Scala call-by-name example
- scala传值调用和传名调用
- scala 中的def/val/lazy val/的区别,call-by-value/call-by-name
- scala def/val/lazy val区别以及call-by-name和call-by-value
- Call By Name
- Scala call-by-name evalutation (A Tour of Scala: Automatic Type-Dependent Closure Construction)
- scala by-name parameter
- Call by Name, Call by Value
- 实现基本交互Oc
- 分类softmax函数
- 前端开发中的cookie使用总结。
- HTTP以及其与HTTPS的区别、javaweb
- Mysql优化2--常用方法
- Scala 学习笔记(一)------函数传名调用(call-by-name)
- gpio驱动重构版,未优化,附上测试demo
- Salesforce to Salesforce Config&Code实现
- net use 连接局域网服务器 自动断网的问题
- Java中抽象类和接口的区别
- Django使用Mysql时数据库配置
- yolo2修改配置文件训练自己的数据集
- Ubuntu 下Python可视化编程环境spyder安装
- Linux ccache 工具的安装