直播预约通道开启!2021腾讯数字生态大会邀您共探产业发展新机遇! 了解详情
写点什么

Scala 2.8 Beta 1 发布

2010 年 1 月 27 日

今天,万众期待的 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 一个, NetBeans IntelliJ 也在开发自己的工具。

Scala Days 2010

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

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

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

2010 年 1 月 27 日 23:021856
用户头像

发布了 88 篇内容, 共 247.8 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

详解区块链应用市场与落地应用现状

CECBC区块链专委会

海南七星彩网站源码结算功能开发

网站,小程序,APP开发定制

如何在 3 个小时内完成一周的工作

escray

博睿宏远获颁“2020开发与技术企业服务奖”

博睿数据

运维自动化 开发工具 博睿宏远

第6周课后练习-请简述CAP原理

Dawn

极客大学架构师训练营

MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)

海星

Java MySQL 面试

课程总结

Thrine

指数 | 2020年6月北京BGP机房网络质量评测报告

博睿数据

评测 博睿宏远 指数

案例解析丨金蝶K/3 Wise接入华为云RDS数据库SQL Server

华为云开发者社区

MySQL 数据库 Serverless 数据 华为云

SaaS是「包治百病」的良药吗?

ToB行业头条

MySQL性能优化(六):常见优化SQL的技巧

xcbeyond

MySQL MySQL性能优化 SQL优化 优化技巧

MySQL性能优化(七):MySQL执行计划,真的很重要,来一起学习吧

xcbeyond

MySQL MySQL性能优化 执行计划

再强调一遍, 我为什么不建议大家接外包干私活?

非著名程序员

程序员 外包 提升认知 程序员成长 接私活

分布式存储系统doris

Thrine

现在微服务这么火,你还不了解吗?阿里P8推荐的微服务学习指南

互联网架构师小马

Docker 微服务 Spring Cloud Spring Boot dubbo

JDK1.8新特性(一):JDK1.8究竟有哪些新特性呢

xcbeyond

jdk8 新特性 JDK1.8新特性

路过,凌晨2点的南京

小天同学

总结 思考 个人感悟 夜归人

没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

程序员内点事

Java GitHub oauth2.0

MySQL 连接查询超全详解

X先生

MySQL 数据库

HashMap学习总结

大刘

hashmap hash

未来的智慧城市:未来的城市生活愿景

网站,小程序,APP开发定制

天元MegEngine深度学习框架贡献者计划全面启动!

flashrunrun

人工智能 学习 AI 开源项目

你与30W奖金只差一个 Apache Flink 极客挑战赛的报名

Apache Flink

flink

开源数据交换(client)

李孟

Java 大数据 flink spark 数据交换

啃碎并发(11):内存模型之重排序

猿灯塔

腾讯的区块链为何败给了老干妈的“萝卜章”?

ToB行业头条

MySQL性能优化(五):为什么查询速度这么慢

xcbeyond

MySQL 查询优化 MySQL性能优化

第6周作业

andy

从一盏路灯,看亿万级联接的智能之路

华为云开发者社区

人工智能 物联网 智能设备 华为云

MySQL性能优化(四):如何高效正确的使用索引

xcbeyond

MySQL 索引 MySQL性能优化

Spring循环依赖及解决方式

张sir

Java spring 循环依赖

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

Scala 2.8 Beta 1发布-InfoQ