scala之尾递归优化
2015-06-23 19:44
423 查看
并不是所有的尾递归都被优化的,在scala确实是这样的,所以scala中有一个注释来要求scala编译器务必尾递归优化,如果不行就报错,这个注释是
看看我们前面的两个例子
加上注解后头递归立即报错
@tailrec
看看我们前面的两个例子
object DemoTest extends App { def getSum2(list: List[Int]): Int = { @tailrec def sumHelp(list: List[Int], sum: Int): Int = { if (list == Nil) sum else sumHelp(list.tail, sum + list.head) } sumHelp(list, 0) } @tailrec def getSum(list:List[Int]):Int = { if(list == Nil) 0 else list.head + getSum(list.tail) } }
加上注解后头递归立即报错
相关文章推荐
- QT实现类似QQ的抖屏效果
- Sql Server 删除所有表
- 二叉树的递归算法
- 循环
- Ubuntu14.04下搭建android5.1编译环境
- Jquery autocomplete 下拉项显示图片
- 中国黑客|封面报道
- 开源云平台OpenStack那些事儿
- 堆排序 Java
- 常见排序算法--实现(归类)
- Android内核开发:系统启动速度优化
- hdu 2948 Geometry Darts(math)
- 10 个你需要了解的 Linux 网络和监控命令
- System.Data.SQLite数据库介绍
- nginx tomcat集群配置实现无痛重启服务教程python语言版本
- IOS-NSDate之今天,昨天,这周,这个月,上个月
- mount.nfs: access denied by server while mounting
- Ajax 完整教程
- HihoCoder 挑战赛12 C #1179 : 永恒游戏(枚举)
- Log4j 2用法