首页 > 解决方案 > 颤振,“:”是什么?

问题描述

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 这些功能旁边的“:”是什么?什么时候使用?

标签: dart

解决方案


ListState._({...})

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


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

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


推荐阅读