我正在学习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()
方法的定义感到困惑。那是静态的,类方法还是其他?
答案 0 :(得分:3)
这是named constructor。调用它的方式与生成生成器的方式相同。
var instance1 = new CatalogSlice(pages, hasNext);
var instance2 = new CatalogSlice.empty();
Dart没有方法/构造函数重载(yet),这就是为什么他们引入了此功能。