介绍
在今年的5月9日,Dart Team宣布推出Dart 2.3 SDK的稳定版本,新的语言功能可以改善在开发用户界面时的编码体验,为开发Flutter UI提供新的工具支持,以及两个新网站: dart.dev和pub.dev 。
用于构建用户界面的新功能
在Dart 2.3中,有三个用于表达基于列表,有条件或重复的UI的新功能。
扩展操作符...
Dart 2.3引入了扩展运算符...和空值感知扩展运算符...?,它提供了一种将多个元素插入集合的简洁方法。
例如,可以使用扩展运算符...将列表的所有元素插入另一个列表:
var list = [1, 2, 3];
var list2 = [0, ...list];
assert(list2.length == 4);
如果扩展运算符右侧的表达式可能为null,则可以通过使用支持null的扩展运算符...?来避免异常:
var list;
var list2 = [0, ...?list];
assert(list2.length == 1);
collection if 和 collection for
Dart 2.3还引入了collection if和collection for,可以使用它来使用条件if和循环for来构建集合。
下面的例子中当promoActive为true时才添加该元素到集合中:
var nav = [
'Home',
'Furniture',
'Plants',
if (promoActive) 'Outlet'
];
下面使用collection for来创建集合:
var listOfInts = [1, 2, 3];
var listOfStrings = [
'#0',
for (var i in listOfInts) '#$i'
];
assert(listOfStrings[1] == '#1');
IDE和编辑器新功能
UI指南
为了与Dart 2.3的UI主题保持一致,还为IDE支持添加了新的UI指南功能。 UI指南是在UI代码中绘制的水平和垂直线,使得更容易看到Flutter UI build()方法的树结构。

UI指南在IntelliJ IDEA和Android Studio的Flutter插件的35.2版中提供。 要启用此功能,请选择Preferences > Languages & Frameworks > Flutter > UI Guides 。VS Code暂不支持该功能。
未导入库API的代码补全
可以在任何前缀上调用代码补全,并且将看到当前包中所有API的完整路径:它直接依赖的包以及SDK。 如果从尚未导入的库中选择补全代码,则该工具会自动添加导入语句。

这个新的自动导入功能在VS Code中的v2.26插件中提供,IntelliJ 2019.1和即将推出的Android Studio 3.5版本也就提供该功能。
新的Dart&Pub网站
dart.dev提供了一个全新的登陆页面,专注于解释Dart平台的核心优势。 并且还更新了文档页面,以获得更好的导航和更具视觉吸引力。Dart Team也对所有内容进行了大量重构,并为以前缺少的核心内容添加了新的页面。
Dart Team还更新了Pub包网站:已将其移动到一个新的URL:pub.dev 。