代码块还不支持Dart……
级联运算符..
级联运算符 (..) 可以实现对同一个对像进行一系列的操作。
除了调用函数, 还可以访问同一对象上的字段属性。
这通常可以节省创建临时变量的步骤, 同时编写出更流畅的代码。
querySelector('#confirm') // 获取对象。
..text = 'Confirm' // 调用成员变量。
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));
上面的代码等价于:
var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));
语法糖 ?.
A?.B
如果 A 等于 null,那么 A?.B 为 null
如果 A 不等于 null,那么 A?.B 等价于 A.B
语法糖 ??
A??B
如果 A 等于 null,那么 A??B 为 B
如果 A 不等于 null,那么 A??B 为 A
…
语法
展开
void list3Point() {
var list1 = <int>[1, 2, 3, 4];
var list2 = <int>[
0,
...list1,
6,
];
print(list2); // [0, 1, 2, 3, 4, 6]
}
if
语法糖
在 flutter 中可能会这样的情况: 如果条件是假,则不显示某个 Widget
class _HomePageState extends State<HomePage> {
String text;
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
if (text != null) Text(text) else Text("空的"),
if (text != null) Text(text),
],
);
}
}
for
语法糖
Widget forTest() {
return Column(
children: <Widget>[
for (var i = 0; i < 10; i++) todoText(i.toString()),
],
);
}
Extension
方法
和kotlin的扩展函数一样,扩展已有的类,方便使用
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
}
// ···
}
import 'string_apis.dart';
// ···
print('42'.parseInt()); // Use an extension method.