call by name 与 call by value in scala
来源:互联网 发布:nat123 80端口 免费 编辑:程序博客网 时间:2024/04/30 02:35
</pre><pre name="code" class="plain">class NameTest{ def time():Long = { println("In time()") System.nanoTime() } def exec(t:Long):Long={ println("Enter exec,calling t ...") println("t:" + t) println("Calling t again ...") t } def exec2(t: => Long):Long={ println("Enter exec,calling t ...") println("t:" + t) println("Calling t again ...") t }}object NameTest{ def main (args: Array[String]) { val ab = new NameTest // call by value -> exec(t:Long) // 先执行 time(),所以 (1)In time() (2) Enter exec,calling t ... (3)"t: ..." (4) Calling t again ... (5) t: // (3)'time equals to (5)'time println(ab.exec(ab.time())) // call by name -> exec2(t: => Long) //延后执行参数方法,先执行本方法 // 先执行 exec2(),到真正调用 time() 再执行 // 所以 (1)Enter exec,calling t ... (2)In time() (3)"t: ..." (4) Calling t again ... (5) t: // (3)'time differ from (5)'time println(ab.exec2(ab.time())) }}
exec() 的执行结果
In time()Enter exec,calling t ...t:1723672175961427Calling t again ...1723672175961427
<pre name="code" class="plain">exec2() 的执行结果
Enter exec,calling t ...In time()t:1723706117217764Calling t again ...In time()1723706117317442
0 0
- call by name 与 call by value in scala
- scala中的call-by-name和call-by-value
- scala中call-by-name和call-by-value
- Call by Name, Call by Value
- Call By Name And Call By Value
- scala函数的call-by-name和call-by-value 区别
- scala 中的def/val/lazy val/的区别,call-by-value/call-by-name
- scala def/val/lazy val区别以及call-by-name和call-by-value
- call by value ;call by address/reference ;call by name;call by pointer
- A simple Scala call-by-name example
- scala 传名调用call-by-name
- Scala 函数传名调用(call-by-name)
- Scala从零开始:函数参数的传名调用(call-by-name)和传值调用(call-by-value)
- call by value 与call by reference的区别
- 实例浅析javascript call by value与call by reference
- Call By Name
- Call-by-reference and Call-by-value
- Call by value VS. Call by reference.
- Dedecms自定义sql 出现错误Safe Alert: Request Error step 2!
- 谷歌公司发布程序员养成指南,推荐相关在线课程
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10
- 有序表的实现
- Linux/Unix IO多路复用之poll网络编程(含源码)
- call by name 与 call by value in scala
- 最大商
- Linux IO多路复用之epoll网络编程(含源码)
- 将iconv编译成lua接口
- 简单计算器
- HDU 4004 The Frog's Games
- Apache DBUtils使用总结
- Eclipse下添加java API注释
- 字符串插入