介绍
在今年的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 。