ダーツの記事で述べたように:
".." 構文は、メソッド (またはセッターまたはゲッター) を呼び出しますが、結果を破棄し、代わりに元のレシーバーを返します。
だから私はこれがうまくいくと思った:
myList..clear().addAll(otherList);
これにより、呼び出すことができないというエラーが発生し.addAll
ましたnull
。
の結果でそれが呼び出されたので、明らかに.
先行するようです。..
.addAll
.clear()
これを書くには2つの可能性があると思います:
myList..clear()..addAll(otherList);
(myList..clear()).addAll(otherList);
(の結果を取得したい場合.addAll()
。
これは正しいです?.
はいの場合、なぜ優先する決定を下すのですか? それは非常に直感に反するようです。次のような構文を避けるためmyList(..clear().useResultOfClear()).addAll(otherList);
ですか?