最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

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

关注

评论

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

031云原生之应用性能监测

穿过生命散发芬芳

云原生 10月月更

JavaWeb JSP详解,java语言程序设计基础篇第十一版答案

Java 程序员 后端

Java 多线程 —— 同步代码块,给大家安排上

Java 程序员 后端

Java 必须掌握的 12 种 Spring 常用注解!你掌握了几种?

Java 程序员 后端

Java 线程池原理分析,java项目经理面试常见问题及答案

Java 程序员 后端

JavaWeb - response对象,重定向,定时跳转案例(1),java高级技术经理

Java 程序员 后端

jackson学习之九:springboot整合(配置文件),jpa和mybatis的区别面试

Java 程序员 后端

Java8新特性-Lambda表达式,zookeeper+dubbo面试题

Java 程序员 后端

Java8新特性-Stream,java数据结构和算法pdf百度云

Java 程序员 后端

Java中高级核心知识全面解析——JVM,java全套视频教程

Java 程序员 后端

Jaeger知识点补充,mysqlsql优化视频教程百度网盘

Java 程序员 后端

1个月连载30个设计模式真实案例(附源码),挑战年薪60W不是梦

Tom弹架构

Java 架构 设计模式

Java 的大 Class 到底是什么?,吃透这份Java高级工程师面试497题解析

Java 程序员 后端

Java中return和finally到底哪个先执行,java程序设计实用教程叶核亚第五版

Java 程序员 后端

Java 新特性之泛型,kafka的架构图

Java 程序员 后端

JavaWeb快速入门--Filter&Listener,java百度网盘课程

Java 程序员 后端

Java中的程序控制流程,java在线编译器实现原理

Java 程序员 后端

Java this关键字详解(3种用法),springaop实现原理面试题

Java 程序员 后端

Java 重写(Override)与重载(Overload),mysql基础语法大全

Java 程序员 后端

Java中高级核心知识全面解析——Dubbo,java架构师课程下载

Java 程序员 后端

Java IO,Java真实项目案例分享

Java 程序员 后端

JavaWeb - response对象,重定向,定时跳转案例,蚂蚁金服内推四面

Java 程序员 后端

Java BSON使用,springboot运行原理理解

Java 程序员 后端

Java lambda表达式用法介绍,linux教程第四版思考题答案

Java 程序员 后端

Java 世界里的垃圾回收规则你搞懂了吗?,java编程思想百度云

Java 程序员 后端

JavaWeb Ajax详解,java开发面试问题大全及答案大全

Java 程序员 后端

JavaWeb快速入门--Bootstrap,java获取视频时长

Java 程序员 后端

Intellij IDEA神器那些让人爱不释手的小技巧,java高级程序员面试笔试

Java 程序员 后端

jackson学习之八:常用方法注解,为什么阿里的程序员成长如此之快

Java 程序员 后端

Java SSM (springboot+mybatis)美食菜谱分享平台系统设计和实现以及论文报告

Java 程序员 后端

Java8异步编程-CompletableFuture,孔浩java视频百度云盘

Java 程序员 后端

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