这是静态方法还是其他?

时间:2018-10-17 05:19:24

标签: dart

我正在学习Dart,以便可以进行一些流畅的移动开发。 Dart非常简单易学,而且我喜欢它,尽管我必须解决与Java / C#的一些差异。

其中之一与以下代码有关:

class CatalogSlice {

  final List<CatalogPage> _pages;

  final int startIndex;

  final bool hasNext;

  CatalogSlice(this._pages, this.hasNext)
      : startIndex = _pages.map((p) => p.startIndex).fold(0x7FFFFFFF, min);

  const CatalogSlice.empty()
      : _pages = const [],
        startIndex = 0,
        hasNext = true;
}

忽略了CatalogSlice所代表的所有特定于业务的内容,我对empty()方法的定义感到困惑。那是静态的,类方法还是其他?

1 个答案:

答案 0 :(得分:3)

这是named constructor。调用它的方式与生成生成器的方式相同。

var instance1 = new CatalogSlice(pages, hasNext);
var instance2 = new CatalogSlice.empty();

Dart没有方法/构造函数重载(yet),这就是为什么他们引入了此功能。