Javaだと下のように多次元配列は生成するわけですが、、
int[][] array = new int[10][10]
Kotlinではこう書けば生成できる
val array = Array(10, {arrayOfNulls<Int>(10)})
解説
- 多次元配列の生成は
Array()
を使うのがいいのかなぁと思います
Array(size: Int, init: (Int) -> T)
- Arrayのコンストラクタは第一引数に配列のサイズ
- 第二引数に要素を指定する
- 要素はIntを引数にとって要素を返す関数を指定する
- initの引数Intには要素分のインデックスが入る
Array(10, { index ->
index // 0から9が順々に
})
// もちろんitで参照できる
Array(10, {it})
// 要素を全て2で初期化する例
Array(10, {index ->
2
})
// 上はindexを使ってないので省略する
Array(10, {2}})
- 以上を踏まえて、要素に配列を指定してあげれば多次元配列になる
// 0−9で初期化された2次元配列
Array(10, {Array(10, {it})})
- 型を指定してnullで初期化する配列を宣言する場合は下でもおk
// Boolean[10][10]
Array(10, { arrayOfNulls<Boolean>(10)})
まとめ
配列生成するのに関数を引数に取るのはなかなかビギナー殺し感ある。便利だけど。