JSRUN 用代码说话

级联运算符

编辑教程

级联运算符 (..)

级联运算符 (..) 可以节省创建临时变量的步骤, 写出更流畅的代码。实现对同一个对象进行一系列的操作。 除了调用函数, 还可以访问同一对象上的字段属性。

参考以下代码:

querySelector('#confirm') // 获取对象。
  ..text = 'Confirm' // 调用成员变量。
  ..classes.add('important')
  ..onClick.listen((e) => window.alert('Confirmed!'));

第一句调用函数 querySelector(),返回获取到的对象。 获取的对象依次执行级联运算符后面的代码,代码执行后的返回值会被忽略。

上面的代码等价于:

var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));

可以嵌套级联运算符,如:

final addressBook = (AddressBookBuilder()
      ..name = 'jenny'
      ..email = 'jenny@example.com'
      ..phone = (PhoneNumberBuilder()
            ..number = '415-555-0100'
            ..label = 'home')
          .build())
    .build();

级联操作符在返回对象的函数中请谨慎使用。 比如以下代码是错误的:

var sb = StringBuffer();
sb.write('foo')
  ..write('bar'); 
  // Error: 'void' 没有定义 'write' 函数。

sb.write() 函数调用返回 void, 不能在 void 对象上创建级联操作。

提示: 严格来说, “两个点” 的级联语法不是一个运算符。 它只是一个 Dart 的特殊语法。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟