質問編集履歴
1
この質問をするに至ったソースと、それに関するQ4を追加。Q4が分かれば、このQ&Aはすべて解決すると思います。
test
CHANGED
File without changes
|
test
CHANGED
@@ -39,6 +39,25 @@
|
|
39
39
|
//listOf()のような初期化を使用せずにTestの要素からnullを消して「2」を追加するにはどうすればよいか
|
40
40
|
```
|
41
41
|
|
42
|
+
Q4 これはQ1~Q3の質問を要因をするに至ったプログラムソースです。
|
43
|
+
```kotlin
|
44
|
+
data class testclass(var a: String? = null, var b: Int? = null, var c:List<Int>? = null)
|
45
|
+
|
46
|
+
fun main() {
|
47
|
+
var test1:testclass? = null
|
48
|
+
var test2 = testclass("100",50,null)
|
49
|
+
test2.c = listOf(10,20)
|
50
|
+
println(test2)
|
51
|
+
//testclass(a=100, b=50, c=[10, 20])
|
52
|
+
//test2.cはnullだったのにlistOfで代入できている!?(nullは何を代入してもnullのままのはず・・・)
|
53
|
+
test1 = test2
|
54
|
+
println(test1)
|
55
|
+
//testclass(a=100, b=50, c=[10, 20])
|
56
|
+
//test1はnullで、test1のすべてのプライマリコンストラクタもnullなのに代入できている!?
|
57
|
+
}
|
58
|
+
```
|
59
|
+
・「nullに代入」はできているのに、なぜ「nullにplus()」はできないのか。
|
60
|
+
・上記の```test1 = test2```と```Test = Test?.plus(2)```の```=```は違う働きをしているのか。
|
42
61
|
### 試したこと
|
43
62
|
|
44
63
|
もとはQ1を解決するためにいろいろ試していたが、その過程でQ2,Q3の疑問が生まれたため省略する。
|
@@ -46,3 +65,4 @@
|
|
46
65
|
### 補足情報(FW/ツールのバージョンなど)
|
47
66
|
Kotlin 1.9.24
|
48
67
|
|
68
|
+
|