写点什么

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:571266
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

Plugin Alliance Bettermaker Passive Equalizer(Bettermaker无源均衡器)

Rose

Arturia V Collection X for mac(经典合成器和键盘合集) v27.08.2024最新版

Rose

合成器 Arturia V Collection X

豆包大模型更多行业落地实践,9月3日邀你见证

新消费日报

PingCAP 孙晓光:TiDB Cloud Serverless 将成为 AI 应用创新的最佳搭档

PingCAP

人工智能 Serverless Cloud TiDB

A股迎来中报季,合合信息文档解析技术辅助大模型深度解读财报

合合技术团队

金融 PDF 科技

探索最佳无代码低代码工具:加速 Web 应用开发

NocoBase

低代码 无代码 Web应用开发

聊聊测试数据的生成方法

老张

软件测试 质量保障 测试数据

如果让你设计一个秒杀系统,你会怎么做?

江南一点雨

Python 实时聊天室搭建:发布订阅频道API实战应用

幂简集成

Python API

动手实践:如何高效构建企业级AI搜索

阿里云大数据AI技术

人工智能 elasticsearch 阿里云 最佳实践 AI搜索

VLDB 2024丨与 TiDB 一起探索数据库学术前沿

PingCAP

数据库 TiDB

Python并发编程:多线程(threading模块)

我再BUG界嘎嘎乱杀

Python 编程 并发编程 后端 多线程

从零开始带你玩转 AI 变现公开课

测试人

人工智能 软件测试

WiFi7 New era IPQ9574 and IPQ5332 strong combination, driven QCN9274 and QCN6274 chip high-speed interconnection revolution

wifi6-yiyi

WiFi7

星河AI电力网络,电力智能化的飞跃起点

脑极体

AI

分享 | 某头部城商行如何提升反欺诈能力

芯盾时代

金融 手机银行 反欺诈

豆瓣评分7.6!Python大牛教你如何采集网络数据

我再BUG界嘎嘎乱杀

Python 编程 爬虫 后端 数据采集

操作系统笔记 day5

万里无云万里天

操作系统

StarRocks 存算分离成本优化最佳实践

Ding_Kai

数据库 StarRocks

Go 程序如何实现优雅退出?来看看 K8s 是怎么做的——下篇

江湖十年

k8s 设计模式 k8s知识 Go web #k8s

Apache RocketMQ 中文社区全新升级丨阿里云云原生 7 月产品月报

阿里巴巴云原生

Apache 阿里云 RocketMQ 云原生

Understanding the Benefits of Tri-Band WiFi 6 in Industrial Applications

wallyslilly

wifi6 ipq5018

华为亮相KubeCon China 2024 ,引领全球智能化新浪潮

新消费日报

试用 Kubernetes Gateway API 的五大理由

NGINX开源社区

nginx 开源 Kubernetes 前端 灰度发布

StarRocks 巧用 Storage Volume,强大又便捷

Ding_Kai

数据库 StarRocks

深入解析京东商品详情API返回值:从零到一的全面指南

代码忍者

API 测试 API 策略

从工程师视角看 “Multi-Agent as a Service (MAaaS)”

Baihai IDP

AI LLMs 企业号 8 月 PK 榜 Baihai IDP AI Agents

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