Flutter Dart语法糖

Dart指南
dart.cn

代码块还不支持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.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值