https://dart.dev/guides/language/evolution
集合类(list,set,map)的特殊操作
...
,...?
,if
,for
Widget build(BuildContext context) {
return Column(children: [
Header(),
...buildMainElements(),
Footer(),
]);
}
Widget build(BuildContext context) {
return Column(children: [
Text(mainText),
if (page != pages.last)
FlatButton(child: Text('Next')),
]);
}
Widget build(BuildContext context) {
return Column(children: [
Text(mainText),
for (var section in sections)
HeadingAction(section.heading),
]);
}
...
对数组为null的处理
var list;
var list2 = [0, ...?list];
assert(list2.length == 1);
Iterable
Iterable<int> naturalsTo(int n) sync* {
int k = 0;
while (k < n) yield k++;
}
extension
extension ParseNumbers on String {
int parseInt() {
return int.parse(this);
}
}
void main() {
int i = '42'.parseInt();
print(i);
}
通过assert执行方法
assert(() {
return true;
}());
Map
int i = 3;
Map map = {if (i is int) i:'int'};
Function判断相等
实质判断是否是同一对象
静态方法比较如下
class A {
static void bar() {} // A static method
void baz() {} // An instance method
}
class B {
static void bar() {} // A static method
void baz() {} // An instance method
}
assert(A.bar != A.bar);
assert(A.bar != B.bar);
Exceptions
dart提供Exception和Error两种类型
Dart代码可以引发并捕获Exceptions。Exceptions是errors,指示发生了意外情况。如果未捕获(catch)到Exceptions,则引发异常的isolate将被暂停,通常isolate会终止其程序。
网友评论