第一百二十六回 级联操作符

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码
  • 经验分享

我们在上一章回中介绍了List和Map相关的知识,本章回中将介绍 级联操作符.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在本章回中介绍的级联操作符表示两个点,以及在此基础上的扩展出的三个点。我在示例代码中没有使用这些操作符,不过在看其它包中的示例代码时发现了这些操作符,开始不理解,查阅相关资料后才知识这些操作符的功能和用法,经过我的使用后,我总结了一些经验,在此分享给大家。

使用方法

级联操作符是两个点,可以使用同一个对象多次调用对象中的方法。我们可以这样理解它:级联操作符的第一个点可以理解为返回当前对象(this),第二个点用来调用对象中的方法。通过级联操作符可以形成链式调用,使的代码更加简洁。如果有看官感觉理解比较抽象的话,可以参考后面的小节中的示例代码。

三个点的操作符是在级联操作符的基础上扩展出来的,它的功能:用来给List赋值,相当把一个List完全复制给另外一个List。鉴于这个功能,它经常用在给List赋值的场景中,稍后我们将通过示例代码来演示它的使用的方法。

示例代码

///list使用级联操作符添加多个元素。级联操作符是两个点,可以使用同一个对象多次调用对象中的方法。
  strList
    ..add('six')
    ..add('seven')
    ..remove('two')
    ..add('eight');

  ///在对象上使用级联操作符,多次调用了类的属性和func方法
  TestObject tObj = TestObject(1, 'a');
  tObj.func();
  tObj
    ..a = 3
    ..b = 'b'
    ..func();

  ///三个点的使用方法:用来给List赋值,相当把一个List完全复制给另外一个List
  List<Text> textList = [Text('a'),Text('b'),Text('c'),];
  List<ListTile> tileList = [ListTile(title: Text('aa'),),ListTile(title: Text('bb'),),ListTile(title: Text('cc'),),];

  _listView = ListView(
    shrinkWrap: true,
    children: [
      ...strList.map((e) => ListTile(title: Text(e)),).toList(),
      ...textList.map((e) => ListTile(title: e,),).toList(),
      ...tileList.map((e) => e,).toList(),
    ],
  );

上面的示例代码中演示了级联操作符的使用方法,建议大家自己动手去实践,这样才能更加有效地掌握它们的使用方法。

经验分享

级联操作符属于比较特殊的操作符,在其它语言中不多见。我的经验是:遇到这种特殊的内容后,可以多看看示例代码,或者官方的源代码。从这些地方就能找出它的使用方法,进而掌握它的功能和用法。这些内容是我自己总结出的经验,看官们有没有什么好的经验可以分享呢?

看官们,关于"级联操作符"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

你可能感兴趣的:(一起Talk,Flutter吧,dart级联操作符,级联操作符,两个点语法,两个点,移动开发)