Dart在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
显示目录

级联运算符



级联运算符 (..)

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

参考以下代码:

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为你提供的Dart在线运行、在线编译工具
        JSRUN提供的Dart 在线运行,Dart 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。