BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Scala 2.8 Beta 1发布

| 作者 Mirko Stocker 关注 1 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2010年1月29日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

今天,万众期待的Scala 2.8 Beta1终于发布了。

相比于2.7.7版,新版本修复了大量bug,同时增加了很多新特性。该Beta版将成为几个月后发布的2.8.0正式版的基础。

小版本号的增长(相对于2.7.7来说)并不能恰当地反映出语言所发生的巨大变化。但遗憾的是,Scala 2.8并没有做到与2.7分支的二进制兼容。

该版本的一些新特性列举如下(请查看发布声明以了解全部新特性):

重新设计的集合库

Scala的集合库经历了翻天覆地的变化——全部重新设计。现在不仅可以更加轻松地实现新的集合,用户还会享受到这么做的各种好处(几乎完全向后兼容),正如Daniel Sobral在Scala-User邮件列表中所述:

Scala 2.7无法做到从一个“Map”中返回另一个“Map”,而这应是必备的功能。为了能够实现类似的功能点,我们才重新设计了Scala 2.8的集合库。

大家可以访问Scala站点以深入了解新的集合库。

具名(Named)与默认参数

Scala 2.8还增加了新的语言特性,如新的具名与默认参数。具名参数就好像是给被调方法的形式参数名赋值一样,如下代码片段所示:

def resize(width: Int = 800, height: Int = 600) = { ... }
resize(width = 120, height = 42)

具名与默认参数经常搭配使用,我们可以根据参数名称为参数赋值,同时对其他参数使用默认值,如下代码片段所示:

resize(height = 42) 

这些创新还被应用到了另一个新特性当中: case class具有一个copy方法,其参数默认为当前值。借助于具名参数,我们可以有选择地修改被拷贝实例的值,请参看Scala站点以深入了解该主题。

改进的交互式解释器

Scala的交互式解释器现在变得越来越强大了,可以通过tab键实现包名、类名和成员的自动完成功能。该特性使用到了反射,不仅可以用于Scala代码,还适用于Java。请参看Arjan Blokzijl的博文以深入了解该特性。

改进的Eclipse插件

新版Scala Eclipse插件将随同Scala 2.8一起发布。其与JDT的集成获得了极大的改进;新的构建管理器使得代码编辑变得更加快速,可靠性也更好。Scala Eclipse插件的主力开发者Miles Sabin详细(PDF)介绍了去年所进行的工作。

InfoQ还采访了Miles以深入了解该IDE的当前状况和未来发展。该IDE将支持Scala 2.8,但还会支持Scala 2.7么?

目前该IDE是链接到编译器上的...所有IDE都是通过编译器实现语法感知特性的。除了2.8以外,我们可以适当降低两者间的依赖来支持多个版本,但遗憾的是并不能支持更早的版本。这里我推荐大家使用单独的Eclipse从事2.7和2.8的开发工作。

最近有消息称Scala IDE将具有独立的发布计划,这么做的意图是什么呢?

随着2.8版的发布,IDE的基础将更加牢固。现在正是快速发展的时期,我们需要拥有比Scala更快的发布周期。

关于IDE的未来,你有什么规划呢?

我的目标是让Scala IDE变得像Java IDE那么棒。尽管还有不少路要走,但我们相信这是可以实现的。
当2.8正式版发布时,我希望能够有一个面向该IDE的Web资源库,它将承载随后版本发布的相关信息,搜集关于IDE现有但零散的文档与资源,最终成为用户和贡献者的交流中心。

当然了,支持2.8的IDE不是只有Eclipse一个,NetBeansIntelliJ也在开发自己的工具。

Scala Days 2010

4月15—16日,众多的Scala爱好者将齐聚Scala诞生地——瑞士洛桑的EPFL来庆祝首届Scala Days,“交互意见并实现业务往来,同时探索关于Scala语言的最新实践和理论上的开发点”。

下载Scala 2.8 Beta,别忘了报告bug和问题以便我们在正式版发布前将其消灭掉,正式版将于几个月之后发布。

查看英文原文:Scala 2.8 Beta 1 Released

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT