飴屋

Kotlin/配列

配列はArrayクラスで表現するみたいです。JavaScriptに似てそう。

配列の作成

val moji = arrayOf("one","two","three")
val jijyo = Array(3){it*it}
val nullary:Array<Int?> = arrayOfNulls(3)

arrayOfで中身を列挙して配列を作るのがわかりやすいかなって思いました。Arrayの中身は一様に同じ型になるので、ジェネリクス表現で配列の中身の型も型情報に記載する必要がありますが、↑上のように型推論できれば省略可能です。

Arrayコンストラクタにラムダ式をつけてやると、中身をラムダ式の返り値で埋められます。itキーワードに配列の添え字が入るみたいですね。

arrayOfNullsはnull値で埋めた配列を返します。これも使いそう。nullしかなくって配列の中身の型が推論できないので、?をつけて型を明示する必要があります。

配列の変更

moji[1] = "one"

角括弧に添え字をつけて中身の要素にアクセスできます。

moji += "four"

配列の最後に要素を追加するのに +=演算子が使えるらしいです。

moji.forEach { it += "!" }

各要素に順番でアクセスして、itキーワードを介して操作できる模様。

配列の要素を削除しようとしたところで、どうもそれ用のインターフェースが用意されてないことに気づきました。Arrayの用途はそんな汎用的なものではないみたいです。コレクションと呼ばれる別のクラスを使うともっといろいろな操作を便利に行えるようです。代表的なもので不変なListと可変なMutableListあたりかな。こっちの方がよく使うことになりそうです。