この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
kotlin:共変_反変 [2019/11/26 00:57] ips [共変(out)] |
kotlin:共変_反変 [2019/11/26 01:28] (現在) ips [Listの場合] |
||
---|---|---|---|
ライン 56: | ライン 56: | ||
===== 反変(in) ===== | ===== 反変(in) ===== | ||
- | <WRAP center round tip 60%> | + | <WRAP center round tip 90%> |
varの値を変更する。 | varの値を変更する。 | ||
下位のHuman型の配列に、上位のAnimal型の配列を設定しているが、Animal型としてしか参照しないので安全。 | 下位のHuman型の配列に、上位のAnimal型の配列を設定しているが、Animal型としてしか参照しないので安全。 | ||
ライン 89: | ライン 89: | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | ===== Listの場合 ===== | ||
+ | listはそもそも不変ではない。 | ||
+ | <code> | ||
+ | val intList = listOf<Int>(1,2,3) | ||
+ | val strList= listOf<String>("a","b","c") | ||
+ | val anyList:List<Any> = intList + strList | ||
+ | |||
+ | anyList.forEach { | ||
+ | println(it) | ||
+ | } | ||
+ | | ||
+ | ↓ | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | a | ||
+ | b | ||
+ | c | ||
+ | |||
+ | val anyList2 = listOf<Any>("a","b","c") | ||
+ | // val intList2:List<Int> = anyList2 コンパイルエラー | ||
+ | </code> | ||
+ |