Kotlinというプログラミング言語を用いたAndroid開発が注目を集めています。
Android開発に即した話をしていきたいところですが、
何はともあれKotlinの基本的な構文を知らないと始まらないのでJavaとの違いを押さえつつ確認していきましょう!
変数
1 2 3 | int num = 10 ; boolean bool = true ; final String text = "TECH" ; |
1 2 3 | var num: Int = 10 var bool = true val text = "TECH" |
Kotlinでは変数宣言にvarキーワードを用います。再代入不可にしたい場合はvalキーワードを用います。
型は識別子の後のコロンに続けて書きますが、Kotlinには型推論機能があるので初期化の右辺から明らかな場合は記述する必要はありません。
また、IntやBoolean等基本となるデータ型は用意されていますが、Javaと違いプリミティブ型という扱いはありません。Kotlinでは全てがオブジェクトなのです。
制御構文
分岐
if文
if文はJavaと差がないのでJavaコードは省略します。
1 2 3 4 5 6 7 | val a = 5 val b = 10 if (a > b) { print( "a is larger" ) } else { print( "a is smaller" ) } |
Kotlinのif文のJavaのそれとの違いはただの制御ではなく、式であるという点です。
つまり次のような記述が可能です。
1 2 3 4 5 6 7 | val max = if ( a > b ) { a } else { b } //三項演算子はないが同等に扱える val max = if ( a > b ) a else b |
when文
when文はJavaにおけるSwitch文に対応します。
1 2 3 4 5 6 7 8 9 10 11 12 | int num = 1 ; switch (num) { case 1 : System.out.print( "numは1" ); break ; case 2 : System.out.print( "numは2" ); break ; default : System.out.print( "上以外" ); break ; } |
1 2 3 4 5 6 7 8 9 10 11 12 | val num = 1 when (num) { 1 -> { print( "numは1" ) } 2 -> { print( "numは2" ) } else -> { print( "上以外" ) } } |
各ケースにおけるブロック括弧は1行であれば省略できます。
inキーワードとrange構文を使って範囲指定による分岐も可能です。
1 2 3 4 | when(num) { in 0 .. 5 -> print( "範囲内" ) else -> print( "それ以外" ) } |
繰り返し
for文
KotlinではCやJavaスタイルのカウンタループは用いずにrangeとイテレータを用いるべきです。
Swiftを書いたことがある方は馴染みやすいでしょう。
1 2 3 | for ( int i = 0 ; i <= 5 ; i++) { System.out.print(num); } |
1 2 3 4 5 6 7 8 9 | for (num in 0 .. 5 ) { print(num) //012345 } //コレクションの場合 val list = listOf( 1 , 2 , 3 , 4 ) for (item in list) { print(item) } |
他に次のような記述も可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //飛び石 for (num in 0 .. 10 step 2 ) { print(num) //0246810 } //リバース for (num in 5 downTo 0 ) { print(num) //543210 } //末数含まず for (num in 0 until 5 ) { print(num) //01234 } |
while文
while文はJavaと同様の記述ができます。
1 2 3 4 5 6 7 8 9 10 | var count = 0 while (count < 10 ) { count++ } //do-while var count = 0 do { count++ } while (count < 10 ) |
[Unity_728×90]