Scala 中 call by name & call by value 的区别
2024-10-06 06:46:59
call by value:会先计算参数的值,然后再传递给被调用的函数
call by name:参数会到实际使用的时候才计算
定义方法
def return1():Int = {
println("calling...")
1
} def callByValue(x: Int) = {
println("x1=" + x)
println("x2=" + x)
} def callByName(x: =>Int) = {
println("x1=" + x)
println("x2=" + x)
}
调用方法,比较输出
scala> callByValue(return1())
calling...
x1=1
x2=1 scala> callByName(return1())
calling...
x1=1
calling...
x2=1
最新文章
- 编译链接 C++
- 使用 UICollectionView 实现日历签到功能
- List集合的remove一个对象的方法
- 关于asp.net 开发的小技巧—让传值对象化
- swiper 技巧
- 并发编程 19—— 显式的Conditon 对象
- iOS app上传错误集锦(转载)
- Oracle 表的连接方式(1)-----Nested loop join和 Sort merge join
- Cocos2d-x开发中C++内存管理
- 【JAVA - 基础】之反射的原理与应用
- SQL Server2008知识点总结
- sql2000数据库误删除后自行恢复二次覆盖成功恢复
- 前端到后台ThinkPHP开发整站(6)
- Mybatis通用Mapper
- 关联查询一张小表。对性能有影响吗(mysql)
- Linux编译安装Mariadb数据库
- MongoDB在Windows系统下的安装和启动
- C# -- 索引器、枚举类型
- python - getattr 与 getattribute 机制
- java下使用chromedriver获取访问页面状态码
热门文章
- JS的正则表达式限定开始和结尾等测试
- windows2008R2下iis7.5中的url重写(urlrewrite)
- JQuery 自定义属性取值 赋值
- 代码内存泄露检测(1) MLeaksFinder (Wechat开源) + FBRetainCycleDetector (FaceBook开源)
- macos的iptables功能是pfctl
- List<;E>;
- `GLIBCXX_3.4.15&#39; not found when using mex file in matlab (linux)
- Lua 学习笔记 (1)
- [HTTPS] - 请求API失败(Could not create SSL/TLS secure channel)之解决
- [SVN] - 使用 TortoiseSVN 进行文件比对非常慢 之 解决