Kotlin nullなListにPlus()したときの動作について

前提

kotlin

1var Test:List<Int>? = listOf(0)2Test = Test?.plus(2)3println(Test)4//[0,2]

発生している問題

kotlin

1var Test:List<Int>? = null2Test = Test?.plus(2)3println(Test)4//[null,2]になってほしいが、実際はnull

###知りたいこと

kotlin

1//以下の質問では2var Test:List<Int>? = null3//を前提として、この宣言は変更できないとする。4 5//Q16//plus()を用いてprint(Test)で「[null,2]」と表示させるにはどうすればよいか?7//それが不可能な場合、どのメソッドを使えばよいか?8 9//Q210//もしかしてnullなListにどれだけplus()しても元のListはNullのままか?

kotlin

1var Test:List<Int>? = null2Test = listOf()3Test = Test?.plus(2)4println(Test)5 //[2]6//Q37//以上のように、一度ListをlistOf()で初期化するとnullが消えるが、8//listOf()のような初期化を使用せずにTestの要素からnullを消して「2」を追加するにはどうすればよいか

試したこと

もとはQ1を解決するためにいろいろ試していたが、その過程でQ2,Q3の疑問が生まれたため省略する。

補足情報(FW/ツールのバージョンなど)

Kotlin 1.9.24

コメントを投稿

0 コメント