写点什么

Dart 的第 4 个里程碑版本发布 核心类库已经稳定

  • 2013-04-18
  • 本文字数:991 字

    阅读完需:约 3 分钟

Google 的 Dart 团队发布了 Dart SDK 的第4 个里程碑版本(即M4)。之前的里程碑版本中Dart 语言已经稳定下来,而M4 版本使一些核心类库稳定了下来,特别是dart:core、dart:collection 和dart:async。性能也有所改进。DartVM 负责原生运行Dart 代码,相对于Chrome 中的JavaScript 引擎 v8 ,它的速度提高在 160%(DeltaBlue 基准测试)到 200%(Richards 基准测试)之间。该版本也带来了速度更快的 dart2js 编译器,我们之前也做过报道

该版本中的 API 变更总结如下:

  • Iterable.join 中的分隔符参数默认值由 null 改为""。
  • 所有的 DateTime 常量都改为非缩写形式,DAYS_IN_WEEK 改为 DAYS_PER_WEEK。
  • 移除了以下弃用的类和方法:
    • CollectionSink
    • Stream.pipeInto
    • Iterable/Stream.max/min
    • Collection(List、Set 和 Queue 现在直接继承 Iterable)
    • Datetime.</<=/>/>=
    • IOSink.writeStream(重命名为 IOSink.addStream)
    • IOSink.writeBytes(重命名为 IOSink.add)
    • StreamSink(重命名为 EventSink)
  • 引入了不需要初始值的 Iterable.reduce Stream.reduce。
  • 重构了 List 的 range 相关函数:
    • List.getRange 接收一个 endIndex 参数,返回 Iterable
    • List.setRange 接收一个 endIndex 参数和一个 iterable 参数(还添加了一个可选的 skipCount 参数)
    • List.removeRange 接收一个 endIndex 参数
    • 移除了 List.insertRange
    • 添加了 List.replaceRange
    • 添加了 List.fillRange
    • 添加了 List.setAll(不严格地讲,这也算一个 range 函数)
  • Stream.hasSubscribers 重命名为 Stream.hasListener
  • 移除了 async:EventSinkView。
  • 移除了 AsyncError 类。
  • 移除了 StreamController.broadcast。
  • dart:html 中 Web Worker 相关的大部分 API 都已移除,同时设计了更合适的 API。Worker 类仍然保留,用于派生 Javascript worker。
  • InvocationMirror 重命名为 Invocation。
  • Function.apply 将 Symbol 用作具名参数。
  • dart:mirror 现在用 Symbol 代替了 String,来表示名字。

API 变化频繁,这是目前使用 Dart 进行开发所面临的主要挑战之一,因为用户需要紧盯着邮件列表中的破坏性更改。Dart 团队准备在今年夏天发布1.0 版本,可能还会加入破坏性更改。一旦到了1.0 版本,API 就不会这么频繁地变化了。随着夏天的临近,这种变化的数目有望减少。

Dart SDK M4 可以从 Dart 的网站下载,支持 Windows、Linux 和 Mac。

查看英文原文 Dart’s M4 Release Stabilizes Core Libraries

2013-04-18 08:571506
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 146.3 次阅读, 收获喜欢 35 次。

关注

评论

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

Paddlenlp之UIE模型实战实体抽取任务【打车数据、快递单】

汀丶人工智能

nlp

不可错过!14位安全大拿齐聚!AMD、Arm及Intel等技术专家解读系统安全 | 2022云栖大会

OpenAnolis小助手

开源社区 系统安全 云栖大会 龙蜥安全专场 操作系统峰会

企业级开发平台的演进

世开 Coding

软件开发 低代码 快速开发平台 少代码

“程”风破浪的开发者|OpenHarmony应用开发环境搭建

技能实验室

OpenHarmony “程”风破浪的开发者

node+express操作cookie

木偶

前端 Node Express 10月月更

驾考宝典携手HMS Core统一扫码服务,构建复杂场景中的流畅扫码体验

HarmonyOS SDK

扫码

秒杀活动!!!! 如何撑住10W QPS

CTO技术共享

10月月更

生产环境P0级事故,整个项目组被罚

CTO技术共享

担时代任务 与国家同频 | 九科信息创始人万正勇:自主可控是中国超级自动化技术发展的必要条件

九科Ninetech

RPA 信创

强烈推荐!腾讯T8架构师手写的SpringBoot分布式架构笔记

小小怪下士

Java 分布式 后端 springboot

uniapp打开地图选择位置

源字节1号

软件开发 前端开发 后端开发 小程序开发

途游游戏 DevOps 实践|都说「单元测试」好,「AAAC四步法」少不了

极狐GitLab

DevOps 运维 单元测试 CI/CD 代码安全

数字云栖,邀您共享极致计算与创新进化的科技盛宴

阿里云CloudImagine

阿里云 边缘计算 云栖大会

前端懒加载和预加载

hellocoder2029

JavaScript

golang中的map

六月的

Go map

常见恶意软件类型及危害

郑州埃文科技

网络安全 恶意软件 办公安全

一文彻底搞懂前端缓存机制

hellocoder2029

JavaScript

自主创新、领先一代,星环科技成功登陆科创板

星环科技

大数据 开源

Go语言入门04—循环语句

良猿

Go golang 后端 10月月更

ERP到底是自研还是外采好????

CTO技术共享

10月月更

【10.14-10.21】写作社区优秀技术博文更新啦!

InfoQ写作社区官方

优质创作周报

Mysql数据库基础之数据库的安装与配置

渔戈

MySQL 数据库 10月月更

如何进行企业数字化转型?传统企业数字化转型的3大底层逻辑

优秀

企业数字化转型

分布式事务-CAP理论

zarmnosaj

10月月更

遮罩和蒙版有什么区别,视频遮罩怎么用

懒得勤快

原来Vue3的computed属性还能这么用啊🔥

渔戈

Vue 前端 10月月更

pt尾递归优化

hellocoder2029

JavaScript

Go语言入门03—条件语句

良猿

Go golang 后端 10月月更

为什么vue3要选用proxy,好处是什么?

hellocoder2029

JavaScript

鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转

TiAmo

华为 鸿蒙开发 10月月更

BH1750 光照传感器文档详解 及 驱动设计

矜辰所致

传感器 stm32 I2C协议 10月月更 BH1750

Dart的第4个里程碑版本发布 核心类库已经稳定_语言 & 开发_Zef Hemel_InfoQ精选文章