写点什么

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

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

关注

评论

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

filecoin矿机系统开发|filecoin矿机软件APP开发

系统开发

如何评估需求优先级?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

uni-app跨端开发H5、小程序、IOS、Android(二):开发工具HBuilderX使用技巧

程序员潘Sir

微信小程序 uni-app App 3月日更 Hbuilderx

"无密码时代"已经来临!

龙归科技

身份认证

发布两小时,霸榜GitHub!Spring Boot实战文档

Java 编程 程序员 架构师

寻找被遗忘的勇气(十八)

Changing Lin

3月日更

php 再上热搜!swoole 创始人投出反对票,质疑 php 协程最新提案

薇薇

php 编程 新特性 php扩展

声网Agora发布创业支持计划:聚合50+合作伙伴、11项资源扶持创业者

ToB行业头条

声网 Agora

以数字人民币为契机 推动人民币国际化进程

CECBC

金融

低代码/无代码,作为IT开发界的“新英雄”它究竟有何神技?

优秀

低代码 无代码开发

全球案例 | Infobip :这家估值十亿美元的公司像初创企业一样规模化发展,像大型企业一样标准化

Atlassian

DevOps Agile Atlassian Jira ITSM

聊聊 Python 自动化脚本部署服务器全流程(详细)

星安果

Python 自动化 服务器 部署

DCache 分布式存储系统|Set, ZSet 缓存模块的创建与使用

TARS基金会

nosql 缓存 分布式 MySQL 高可用 TARS

直击面试!阿里技术官手码12W字面试小册在Github上爆火

Java架构之路

Java 程序员 架构 面试 编程语言

图解垃圾算法,No,捡垃圾算法

叫练

GC算法 引用计数法 标记清除法

科技进化的终点,与荣耀全场景的起点

脑极体

趋势预测:2021年五大流行的编程语言

薇薇

Java c php JavaScript Python PEP

epoll源码分析以及在Redis中的实现

Linux服务器开发

redis 后端 epoll web服务器 Linux服务器开发

JDBC—往MySQL中写入Blob数据时,出现错误:com.mysql.jdbc.PacketTooBigException: Packet for query is too large (5724349 > 1048576)

打工人!

Java MySQL JDBC Blob

收藏!这些IDE使用技巧,你都知道吗

xcbeyond

IDEA 技巧 3月日更

霸榜Git!2021年阿里巴巴Java面试权威指南(全彩版)

Java 程序员 面试 架构师

炸裂,IBM系统架构师居然把自己15年Java经验整合成一本小说?

Java架构师迁哥

filecoin云算力软件开发|filecoin云算力APP系统开发

系统开发

打卡学习VBA和PYTHON week01

小怪兽

IT蜗壳教学

filecoin挖矿软件开发|filecoin挖矿APP系统开发

系统开发

经典排序算法分析

roseduan

算法 排序算法

霸榜Git!2021年阿里巴巴Java面试权威指南(泰山版)

Java架构之路

Java 程序员 架构 面试 编程语言

一周信创舆情观察(3.8~3.14)

统小信uos

2021年新兴的十大区块链技术趋势

CECBC

数字技术

全凭阿里大牛总结的Java面试笔记,首战成功拿蚂蚁offer

Java架构之路

Java 程序员 架构 面试 编程语言

朱嘉明:比特币开创人类新型财富实验

CECBC

数字货币

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