フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

kotlin覚えたメモ②

はじめに

  • 前回から少しづつkotlinを覚えているので、そのメモの続き

px-wing.hatenablog.com

配列とコレクション

Kotlinで複数の要素をまとめて扱うには、Javaと同様に配列とコレクションを用いる

配列と代表的なコレクション(List・Set・Map)は以下のような特徴がある

  • 配列 最もシンプルな複数の要素を扱う仕組みだが、宣言の段階でサイズを決める必要があるなど柔軟性に欠ける

  • List 配列と同様に複数の要素を扱うことができる、インデックスを指定して値を取得・設定ができる

  • Set Listと似ているが重複した要素は登録しないので、重複のない複数の要素を扱うことが出来る、順序性はないのでインデックスを指定した値の取得・設定は出来ない

  • Map キーと値を利用して要素を扱う、他の言語では連想配列・辞書(ディクショナリ)と呼ばれることもある

配列

fun main() {
  var a = arrayOf(1, 2, 3)
  var b = intArrayOf(1, 2, 3)
  var c: Array<String?> = arrayOfNulls(3) // [null, null, null]
  var d = Array(3, {i -> i * 2}) // [0, 2, 4]
  println(a[1]) 
  println(b[2]) 
  println(c[0]) 
  println(d[2])     
}

コレクション

  • 各種コレクションは以下のように生成できる
  • コレクションを作成すると読み取り専用である
fun main() {
  var list = listOf("あ", "い", "う")
  var var_set = setOf("A", "B", "A", "C", "D", "B")
  var map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3")
  println(list)
  println(var_set)
  println(map)
}
  • 変更可能なコレクションを作成するには、mutableコレクション名Of()関数を使う
var list = mutableListOf(1, 2, 3)
list[2] = 5

定数

  • 変数のように値に名前を与えるが、一度定義したら値が変わらないもの定数を宣言するには、​val命令​を用いる(変数は、var命令)定数を変更しようとするとエラーになる
val​ DB_HOST = ​'localhost'

制御構文

  • 至って他の言語と変わらない

    if文

val​ a = ​10
if​ (a <= ​5​) {  
    println(​"aは5以下です"​)
} ​else​​if​ (a <= ​10​) {  
    println(​"aは10以下です"​)
} ​else​ { 
    println(​"aは10より大きいです"​)
}

when式

val​ x = ​1
when​ (x) {
    ​1​ -> println(​"xは1です"​)
    ​2​ -> println(​"xは2です"​)
    ​else​ -> {  
        println(​"xは1でも2でもないです"​)  
    }
}