【问题标题】:What does that 2 dots mean? What is the difference between 1 and 2?那2个点是什么意思? 1和2有什么区别?
【发布时间】:2019-04-07 18:47:07
【问题描述】:

我看到很多教程都用dot,有的用2,这到底是什么意思?

例子,

Array().add()

Animation()..addListener(() {})

【问题讨论】:

标签: dart flutter


【解决方案1】:

.. 运算符是飞镖“级联”运算符。当您不关心返回值时,对于链接操作很有用。 这也是总是返回this的可链接函数的飞镖解决方案

以下是这样制作的

final foo = Foo()
 ..first()
 ..second();

严格等于:

final foo = Foo();
foo.first();
foo.second();

【讨论】:

  • 解释得好!!!谢谢你,雷米!!感谢您花时间解释! ^ 继续努力,兄弟。
  • foo.first(): 应该是 foo.first();,否则谢谢!
【解决方案2】:

作为一个吹毛求疵的人,.. 实际上并不是 Dart 中的运算符,只是 Dart 语法糖的一部分。

除了提到的使用级联来链接函数调用之外,您还可以使用它来访问同一对象上的字段。

考虑这段代码,取自 Dart 文档:

querySelector('#confirm') // Get an object.
  ..text = 'Confirm' // Use its members.
  ..classes.add('important')
  ..onClick.listen((e) => window.alert('Confirmed!'));

第一个方法调用 querySelector() 返回一个选择器对象。级联符号后面的代码对此选择器对象进行操作,忽略任何可能返回的后续值。

有关级联的更多信息,请查看 Dart 的 outstanding documentation

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 1970-01-01
    • 2012-02-13
    • 2010-10-23
    • 2014-04-08
    • 2020-02-15
    相关资源
    最近更新 更多