在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

Dart 1.8:采访 Google 工程师 Seth Ladd

  • 2014-12-26
  • 本文字数:1364 字

    阅读完需:约 4 分钟

Google 近期发布了其开源Web 编程语言 Dart 的 1.8 版本。该版本带来了对枚举的实验性支持,Google 的 Dart 开发倡导者 Seth Ladd 介绍说,枚举是请求最多的特性之一。为了解该特性相关的更多信息,以及 Dart 项目的最新信息,InfoQ 采访了 Ladd。

InfoQ: Seth,你提到枚举是 Dart 中请求最多的特性之一,为什么说枚举这么好呢,缺乏枚举会有什么不便吗?为什么有人这么关心这个特性?

Ladd:枚举可以帮助开发者用最少的代码清晰地表达其意图,还可以帮助工具捕获潜在的 bug。开发者可以方便地使用枚举来命名一组相关的术语或值。

对于喜欢看代码的开发者,我们先看一个例子。在引入枚举之前,开发者必须像下面这样指定来自业务中的状态(OPEN、INPROGRESS 和 CLOSED):

复制代码
// 在引入枚举之前
class FormState {
static const FormState OPEN = const FormState._(0);
static const FormState INPROGRESS = const FormState._(1);
static const FormState CLOSED = const FormState._(2);
final int value;
const FormState._(this.value);
static const List<formstate> values = const [OPEN, INPROGRESS, CLOSED];
}</formstate>

而有了枚举的适当支持,代码简洁了很多:

复制代码
enum FormState { OPEN, INPROGRESS, CLOSED }

新的语法可以帮助开发者识别潜在的 bug。枚举经常用在 switch 语句中。为确保开发者处理了枚举中所有可能的状态,Dart 工具可以在缺失显式的 case 语句时给出警告。

InfoQ:枚举支持目前的描述还是“实验性特性”。那如何确定实验是否取得成功呢?

Ladd:之所以将枚举标记位“实验性特性”,这是因为,一方面语言规范已经完成,还在等待 ECMA TC52 的批准;另一方面,我们还希望我们所有的工具都能正确处理枚举。我们希望开发者现在就开始使用枚举,并报告发现的实现中存在的问题。我们期待尽快去掉“实验性”的标签。

InfoQ:在你看来,社区对枚举的实验性支持反应如何?

Ladd:Dart 1.8 还非常新,反馈还在收集。然而,枚举是社区要求最多的特性之一,所以我们非常激动地想看到开发者使用它。有些开发者还要求支持将整数值赋给枚举值,未来的 ECMA TC52 会议会讨论这个特性请求。

InfoQ:除了枚举,Dart 1.8 还有其他一些变化。你可以给读者详细介绍下吗?

Ladd:在 Dart 1.8 中,添加了新的 JsonUtf8Encoder,以帮助开发者编写性能更好的服务器。我们注意到,将 JSON 解码为 UTF8 这种操作很常见,所以我们希望提供一个优化的解决方案。

API 也有一些小变化,主要是为提高开发效率。

InfoQ:InfoQ 的读者对 Dart 1.9 可以有哪些期待呢?对于 2.0 版本,有哪些特性我们可以先睹为快吗?

Ladd:我们正在努力实现 async / await,这个特性可以帮助开发者编写异步代码,而且是看上去更像同步代码的异步代码。这意味着减小了进入“回掉黑洞”的机会。

关于 Dart 2.0,目前还没有什么可以分享的。按照我们的期望,1.9 版本之后会是 Dart 1.10。

InfoQ:你还有什么想要跟大家分享的吗?

Ladd:希望开发者参加我们的第一届 Dart Summit ,将于 2015 年 4 月在旧金山举行。大会是学习 Dart 方方面面知识的好机会,可以直接跟我们的工程师和 Dart 社区交流。大会现在也在开放征集演讲提议

Dart 团队也欢迎大家向该项目做出贡献。InfoQ 的读者可以通过报告 bug、回答 StackOverflow 上的问题以及提交代码来做贡献。更多信息,可以参见该页面

2014-12-26 04:252133
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

浪潮云参编的《数字政府网络安全合规性指引》正式发布

云安全

如何部署教育云终端

青椒云云电脑

云终端

如何使用PyTorch训练LLM

3D建模设计

人工智能 LLM 大语言模型

重磅!python自动化办公,终于支持 Mac下载了

程序员晚枫

Python 编程 Mac

文心一言 VS 讯飞星火 VS chatgpt (88)-- 算法导论8.3 1题

福大大架构师每日一题

福大大架构师每日一题

ARTS打卡第四周

穿过生命散发芬芳

ARTS 打卡计划

低代码+AI:拖拉拽构建漂亮活动页面

码上跃见

AI 低代码 网页设计 AIGC 低代码前端

ARTS打卡第四周

穿过生命散发芬芳

ARTS 打卡计划

LlamaIndex:将个人数据添加到LLM

3D建模设计

LLM 大语言模型

万字全面评测(上篇):文心一言 vs ChatGPT

豆哥

评测 ChatGPT 文心一言 大语言模型

C++的纯虚函数和抽象类

芯动大师

创建型设计模式-工厂方法 Factory Method

菜皮日记

设计模式

云桌面好用吗? 选购云桌面前必看的产品对比

青椒云云电脑

云桌面

Mojo语言:AI的新编程语言

3D建模设计

编程 AI

Go Struct

小万哥

Go 程序员 后端 开发 Google

火山引擎边缘云助力智能科技赋予生活更多新意

火山引擎边缘云

对象存储 视频 边缘云

Paimon+StarRocks 湖仓一体数据分析方案

StarRocks

数据库 大数据 数据湖 湖仓一体

云桌面办公解决方案有哪些优势

青椒云云电脑

云桌面

设计模式系列文章

菜皮日记

设计模式

HarmonyOS创新实训营深圳站收官,美图秀秀、邮储银行、中信银行等20余企业积极拥抱鸿蒙生态

最新动态

华为Mate60负一屏升级快捷服务 同程旅行、猫眼等入驻

最新动态

如何部署教育云终端

青椒云云电脑

云终端

Blender中的高级边缘控制和纹理映射

3D建模设计

blender UV贴图

生成式 AI 中的风险认知

3D建模设计

生成式AI

一文搞懂ThreadLocal原理

树上有只程序猿

多线程 ThreadLocal

私有云是什么?有哪些优势?

青椒云云电脑

公有云 私有云 云桌面

IT办公云化:云桌面解决方案是大势所趋

青椒云云电脑

云桌面

规范预算编制,打造企业全面预算管理新章程

智达方通

企业全面预算管理 预算管理 预算编制 全面用预算管理 预算预测

AI 编程助手 Amazon CodeWhisperer 使用(持续更新中)

亚马逊云科技 (Amazon Web Services)

人工智能 亚马逊云科技

Dart 1.8:采访Google工程师Seth Ladd_JavaScript_James Chesters_InfoQ精选文章