Dart: Cascade Notation

 14th December 2020 at 9:13am

Dart 中有一个实用(但不是那么清晰)的层叠标记功能。

void main() {
  querySelector('#sample_text_id')
    ..text = 'Click me!'
    ..onClick.listen(reverseText);
}

即是说,querySelector 返回的对象,可以在一个表达式中被持续使用,比如赋值它的 text 属性,使用它的 onClick 属性。

它的作用是:**在函数没有实现 fluid 风格时也能使用 fluid 风格**。

复杂的例子:

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