谷歌已经发布了 Dart 2.1。该版本提供了新的语言特性、性能改进、更快的类型检查以及针对类型错误的更好的可用性。
Dart 2 于今年年初发布,它为移动设备代码生成提供了一种新的编译器支持、一款重新修改过的 web 平台工具和一个健全的类型系统(也称为类型安全系统),以支持团队构建复杂的应用程序。
健全的类型系统在开发过程中帮助用户,通知开发人员何时违反了类型指定的契约。现在在 Dart 2.1 上,编辑时和编译时类型检查都已经完成。
Dart 2.1 改进了对 mixin 的支持。mixin 是允许开发人员在多个类层次结构中重用类代码的特性。
已经为 mixin 添加了一个新的语法,关键字 mixin 可用于定义只能作为 mixin 使用的类。
需要注意的是,新的语法混合程序阻止用户扩展或构造 mixin 类。
现在,mixin 可以扩展其他类(以前它们只能扩展对象)并调用超类中的方法。
有一个扩展非对象类的例子,它来自于 Flutter 的动画 animation API,其中 SingleTickerProviderStateMixin 声明了一个实现通用 TickerProvider 接口的 mixin。
如果开发人员希望在 mixin 中使用 super,则需要新的 mixin 语法。
Dart 2.1 现在可以推断出 int 类型在哪里可以被计算为 double,这是 Flutter 开发人员在使用 API 期望使用 double 类型的 int 类型时经常遇到的问题。
(图片来自于 medium.com/dartlang)
Flutter 和 web 开发人员可以从性能改进中获益。在 Dart 2.1 中,对于 AOT 编译的代码和在使用 JIT 编译的 VM 中运行的代码,类型检查的成本都降低了。根据谷歌的说法,对一个大型基准测试应用程序执行代码分析以前需要 41 秒,现在只需要 25 秒。此外,dart2js 缩小的输出尺寸减少了 17%,编译时间也快了 15%。
Dart 2.1 现在正式支持协议缓冲区。协议缓冲区是用于序列化结构化数据的与语言无关、与平台无关的机制,支持的语言有 Java、Python、Objective-C、C++、Dart、Go、Ruby 和 C#。
可以在参考文档中找到有关协议缓冲区的更多信息。
其他功能包括:
添加了 HashMap.fromEntries 和 LinkedHashmap.fromEntries 构造函数。
添加了操作符/ 、|、和 ^到布尔。
添加了新的 HTTP 状态码。
添加了-O 标志来调整优化级别。请执行 dart2js -h -v 查看更多的细节。
在变更日志中可以找到完整的特性、缺陷修复和破坏性变更列表。
可以在 Dart 主页上下载 Dart SDK 2.1 。对于 Flutter 开发人员来说,Dart 2.1 是 Flutter 1.0 版本的一部分。谷歌还针对 int-to-double 和 mixin 提供了一些示例。Dart 插件可用于一系列 IDE 和编辑器,如 Android Studio、Visual Studio Code、 Intellij IDEA、Atom、Vim 以及 Emacs.
查看英文原文:https://www.infoq.com/news/2018/11/dart-2-1
相关推荐:
12 月 7 日北京 ArchSummit 全球架构师峰会上,来自 Google、Netflix、BAT、滴滴、美团 等公司技术讲师齐聚一堂,共同分享“微服务、金融技术、前端黑科技、智能运维等相关经验与实践。详情点击 https://bj2018.archsummit.com/schedule
评论 1 条评论