QCon全球软件开发大会8折优惠倒计时最后3天,购票立减¥1760!了解详情 >>> 了解详情
写点什么

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:021864
用户头像

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

关注

评论

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

最新阿里+头条+腾讯大厂Android笔试真题,附详细答案

欢喜学安卓

android 程序员 面试 移动开发

阿里P8大佬码出25大后端面试指南,2000道面试题解析助力金九银十

Crud的程序员

Java spring 编程 架构

“AI赋能”大学计划落地,英特尔联合生态伙伴推进产教融合

新闻科技资讯

和12岁小同志搞创客开发:设计一款亮度可调节灯

不脱发的程序猿

DIY pwm 创客开发

阿里P8架构师(花名:霍州)Java程序性能优化“学习日记”

Java架构追梦

Java 阿里巴巴 架构 面试 性能优化

澳鹏Appen:用高质量的训练数据,赋能更好的智能驾驶

澳鹏Appen

人工智能 自动驾驶 训练数据

万字长文详解HiveSQL执行计划

五分钟学大数据

sql 大数据 hive Hive SQL

基于 Kubesphere 的 Nebula Graph 多云架构管理实践

青云技术社区

KubeSphere

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

云流

Java 程序员 架构 面试 高并发

年中面试经历:美团2面+字节3面+阿里4面+腾讯Java面经,终入字节

云流

Java 程序员 架构 面试

云小课|RDS实例连接又失败?看我祭出杀手锏!

华为云开发者社区

数据库 关系型数据库 云数据库 RDS GaussDB(for MySQL)

Python——默认字典 (defaultdict)

在即

6月日更 六月日更

Vue-3-生命周期管理

Python测试和开发

Vue 前端 签约计划

分布式数据库在抖音春晚活动中的应用

火山引擎开发者社区

数据库 后端

继BAT之后,又一头部厂商开始构建低代码生态!=

优秀

低代码

最新大厂Android校招面试经验汇总,看完没有不懂的

欢喜学安卓

android 程序员 面试 移动开发

中国政府大数据市场,我们又是第一

浪潮云

云计算

在云原生场景下构建企业级存储方案

青云技术社区

云原生

如何基于MindSpore实现万亿级参数模型算法?

华为云开发者社区

算法 mindspore 万亿级参数 大模型

jenkins-01 | 安装

Python测试和开发

持续集成 jenkins CI/CD

K8S调试利器:telepresence2使用文档

互联网架构师小马

使用 VideoToolbox 探索低延迟视频编码 | WWDC 演讲实录

网易云信

低延时

2021斩获45K月薪的Spring全家桶:文档+面试题+学习笔记+思维导图

Crud的程序员

Java spring springboot SpringCloud

面试官问我:如何减少客户对交付成果的质疑

华为云开发者社区

Scrum 敏捷开发 项目 用户故事 研发

高可用 | Xenon:后 MHA 时代的选择

青云技术社区

在windows上用Nginx做正向代理

Python测试和开发

网络 Proxy 正向代理

有状态应用如何在Kubernetes平台上快速迁移和重建

焱融科技

云计算 Kubernetes 容器 云原生 高性能

奇亚节点分币系统搭建,Bzz节点分币APP搭建

13823153121

双非渣硕,开发两年,苦刷算法47天,四面字节斩获offer

云流

Java 程序员 架构 面试 算法

技术干货 | macOS桌面端录屏采集实现教程

ZEGO即构

前端 WebRTC 音视频开发 屏幕录制

云小课 | 华为云KYON之ELB混合负载均衡

华为云开发者社区

负载均衡 华为云 云网络 KYON企业级云网络 弹性负载均衡ELB

移动应用开发的下一站

移动应用开发的下一站

Scala 2.8 Beta 1发布-InfoQ