颤振,什么是“:”?

时间:2021-01-10 10:11:11

标签: dart

enum ListStatus { loading, success, failure }

class ListState extends Equatable {
  const ListState._({
    this.status = ListStatus.loading,
    this.items = const <Item>[],
  });

  const ListState.loading() : this._();

  const ListState.success(List<Item> items)
      : this._(status: ListStatus.success, items: items);

  const ListState.failure() : this._(status: ListStatus.failure);

  final ListStatus status;
  final List<Item> items;

  @override
  List<Object> get props => [status, items];
}

1 什么是“._”

ListState._({...})   ?

2 那些函数旁边的“:”是什么?什么时候用?

1 个答案:

答案 0 :(得分:2)

ListState._({...})

这是一个私有的命名构造函数,这意味着你不能从当前库的外部实例化这个类对象。


const ListState.loading() : this._();

这也是一个命名构造函数(虽然不是私有的),这里 this._()) 只是将调用委托给私有命名构造函数。