change_notifier.dartを見ていて、
abstract class Listenable { /// Abstract const constructor. This constructor enables subclasses to provide /// const constructors so that they can be used in const expressions. const Listenable(); /// Return a [Listenable] that triggers when any of the given [Listenable]s /// themselves trigger. /// /// The list must not be changed after this method has been called. Doing so /// will lead to memory leaks or exceptions. /// /// The list may contain nulls; they are ignored. factory Listenable.merge(List<Listenable?> listenables) = _MergingListenable;
というのが出てきました。最後のfactoryキーワードがついている部分なんですが、これは
factoryコンストラクタなのでしょうか?
コンストラクタの定義なのでしょうか?
代入されている_MergingListenableに関しては、
class _MergingListenable extends Listenable { _MergingListenable(this._children); final List<Listenable?> _children; @override void addListener(VoidCallback listener) { for (final Listenable? child in _children) { child?.addListener(listener); } } @override void removeListener(VoidCallback listener) { for (final Listenable? child in _children) { child?.removeListener(listener); } } @override String toString() { return 'Listenable.merge([${_children.join(", ")}])'; } }
上記のように定義されており、普通のクラスです。
上記のfactoryコンストラクタ?の書き方が初見で意味がよくわかりません。
公式ドキュメントかどこかに説明ってありますでしょうか?
一応公式ドキュメントのコンストラクタ付近は目を通したつもりです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/28 08:45
2021/01/10 03:06
2021/01/11 11:57
2021/01/12 03:11