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