【51CTO快译】Scala 2.8终于来啦!经历了7个RC版本,Scala终于迎来了2.8.0的Final版本,这是修正了大量Bug和增强了若干特性的最终版本。(请关注51CTO特别推荐专题:Scala编程语言)
经过数月的艰苦作战,Scala团队终于在昨天正式发布了Scala 2.8.0稳定版本,现在就可以从Scala的下载页面进行下载:http://www.scala-lang.org/downloads#
Scala下载页面(包括支持windows、Mac OS、Linux和Unix等操作系统的开发包)
该版本在2.7.7的基础上修复了大量Bug,并添加了大量的新特性,下面就让我逐个道来吧!
新特性
Scala 2.8.0包括以下新特性:
1、重新设计的集合库
Scala 2.8对集合库进行了全面的重构,提供了更加一致和有效的设计,同时保持了与现有源的完全兼容。
2、新的数组实现,支持多态
在Scala 2.8中,对数组的处理进行了简化和优化,以前的编译器已经被一个更系统化和可预知的实现取代。
3、类型特殊化
Scala 2.8增加了专门的类型参数,使编译器可以根据给定的定义透明地生成多个版本。
4、命名和默认参数
命名参数改善了包含多个参数的方法调用可读性,默认参数减少了代码重复度,并为case类代码提供了“copy”方法,可以快速生成case类代码。
5、包对象
除了可以包含类和对象外,包现在也可以包含方法、字段或类型别名了,通过声明一个包对象就可以将它们添加到一个包中了,在以后的版本中还有更多的功能添加到包对象中。
6、增强了Scala Swing库,并提供了更好的参考文档
组件发布关键事件,输入事件,重构窗口子层,额外的demo,Swing监听器,更完整的组件缓存,Bug修复,更好的参考文档等。
7、REPL翻新
修复了许多Bug,Tab键自动完成classpath中的所有包,以及对象,实例方法和字段,包括对象别名和包对象,可搜索的历史,集成Shell访问,并提供了一个超级模式,可直接进入编译器内部。
8、隐式转换
完善了隐式转换过程,现在可以确定类型的变化。
9、改进的等于比较
数值型比较现在和所有基元类型的比较一致了,同时也遵守等于/hashCode约定。
10、Packrat分析器组合
分析器组合现在可以处理左递归语法,并改进了性能。
11、改进的XML库
修复了XML库的许多Bug。
12、类型推断
类型推断已经扩大到处理类型构造,因此在某些情况下,你可以省略包含高度友好类型的类型参数列表。
13、改进的注解
Scala 2.8增加了对嵌入式Java注解的支持,对于字段的注解,现在可以指定哪个成员(getter / setter)将有注解。
14、增强的Actor
新的Reactor提供了轻量级,纯基于事件的Actor,并可以隐藏发送者身份,支持后台守护进程风格的Actor,Actor可以配置用于高效的JSR166y fork/join池,显著地提升在1.6 JVM上的性能。调度程序现在也是可插入的,且更容易定制。
15、支持延续
延续是通过一个编译器插件支持的,现在已经成为主要发行版的一部分。
内部改进
1、改进的编译器
在Scala编译器内,IDE可以与之挂钩,提高查找程序结构相关信息的效率,也为开发IDE插件提供了更好的平台。
2、新的生成管理器
可以智能检测发生变化的文件,只编译需要的Scala源文件,不用每次都执行完整的项目生成操作,这个技术极大地减少了大项目的编译时间。
3、速度改善
编译器现在运行的是优化后的代码,此外,一系列改善措施和精细的调整使编译器速度提升了一半。
Bug修复
Scala 2.8修复了数百个Bug。
其它工具
1、Scaladoc 2
崭新的外观,自动化的注解扩展和类wiki语法,以及编译时错误检查。
2、Sbaz 2
Sbaz包括许多Bug修复和改进,它现在可以使用cmd或cygwin在Windows下正常工作,并增加了自动更新功能,增加了对pack200的支持,在某些情况下,可以将文件大小减少70%。
3、Scalap
包含了由社区贡献的新版本Scalap,新的Scalap可以识别包对象,并可以使用<package_name>.package来反编译包。
4、Scala IDE for Eclipse
重写了Scala IDE,许多功能都转移到编译器中去了,增强了代码可维护性,也便于非Eclipse IDE和其它工具重用,此外,加深了与Eclipse JDT的集成,许多Scala特定的行为和功能现在直接由JDT提供。
原文出处:www.scala-lang.org/node/7009
原文名:Scala 2.8.0 final
【51CTO译稿,非经授权谢绝转载,合作媒体转载请注明原文出处、作者及51CTO译稿和译者!】
【编辑推荐】
- Scala 2.8.0 RC2正式发布 新特性一览
- Scala 2.8***个候选版发布 Bug修正成重点
- Scala 2.8.0 Beta 1发布
- Scala 2.8的for表达式:性能与运行顺序的改进
- Scala 2.8新特性之命名参数概览