ユーザ用ツール

サイト用ツール


kotlin:共変_反変

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
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>​
 +
kotlin/共変_反変.1574697446.txt.gz · 最終更新: 2019/11/26 00:57 by ips