【入門】Kotlinとは?Javaとの違いから文法、実行サンプルまで紹介
公開日:2020.08.20
スキルアップKotlin(コトリン)は2011年に開発されたオブジェクト指向型言語で、Javaを簡潔かつ安全になるよう改良を加えた産業利用向けの汎用言語としてリリースされました。そのためJava仮想マシン上で動作し、文法などもJavaに近いものになっています。Javaと同様に素早くコンパイルでき、同程度の速度で動作するとされています。Androidの開発言語として公式認定され、スマートフォンアプリの開発現場でのシェアが広がりつつある言語の一つです。
今回はこのKotlinについて、Javaの違いや文法を解説しながら、実行サンプルを紹介していきます。
Kotlinとは
KotlinはJetBrains社が開発したプログラミング言語で、2011年7月に産業用汎用言語として発表されました。その後、2012年にApacheライセンスVer2.0に基づいてオープンソース化しています。
Javaとの連携が考慮されていて、Java仮想マシン上で動作するため、Javaと同様にコンパイルも動作も速いとされています。文法はJavaをベースに、同じくJava仮想マシンで動作するGroovy(グルービィ)やScala(スカラ)といった言語の機能や構文を採用しています。
APIが公開されており、Webサイト上での実行が可能です。また、統合開発環境の「IntelliJ IDEA」(インテリジェイ アイデア)のプラグイン(M4)も提供されています。
Androidアプリ開発専用?Kotlinの言語機能とできること
Kotlinは、Androidアプリの開発が可能であり、Google社がAndroidの開発言語として公式認定したプログラミング言語でもあります。Android Studioで環境構築が簡単におこなえ、Androidアプリの開発現場ではシェアが広がりつつあります。
しかし、Kotlinはアプリ開発専用ではありません。たとえば、Kotlinはアプリ以外にWEBサービスの作成も可能です。大手ポータルサイトでも、開発言語の一つとしてKotlinを採用しているところもあります。
Javaとの違いとは
KotlinはJavaと比較してモダンといわれています。その最も大きな理由として挙げられるのが、記述がシンプルであることです。これはそもそもKotlinの開発が行われた時、Javaの簡潔化と安全性の向上に重きを置いたためです。
Kotlinは、同じ処理を行う場合、Javaよりもコード数が少なくて済む場合が多くあります。また、Javaが抱えるNullの問題(Null値にアクセスした際にでるエラーで、Javaで頻発するもの)に対応し、安全になるように言語が設計されています。
Kotlin入門 - 文法の簡単な解説
では早速文法の簡単な解説をしていきます。今回は、どの言語でも入門段階で習得することになる、文字列の出力とfor文、if文に加えて、when文をサンプルコードとともに解説していきます。
文字列出力
画面に文字を表示するための命令文です。入力された数値や文字列を、println 関数でコードの任意の位置に出力します。
文字はChar型と呼ばれ、1文字のChar型は '0' のようにシングルクォートを使用して囲います。また、Javaと同様に "Hello World" のようなダブルクォートの文字列も使用できます。
例:
println("サンプルテキスト");
なお、変数も含めて出力したい場合、次のような書き方が可能です。
例:
// 変数$strを出力する場合、$strを次のように{}で囲うことで展開可能
var str = "テスト";
println("サンプル${str}テキスト");
例:
// $str を半角スペースで挟むことでも展開可能
var str = "テスト";
println("サンプル $strテキスト");
for 文
指定された終了条件に到達するまで同じ処理を繰り返すループ構文です。myListに格納された配列データを順番に出力していく場合は、次のようになります。
例:
val myList = listOf(1,2,3,4,5)
for (listData in myList) {
println(listData);
}
if 文
条件によって処理を分岐させる構文です。
int型の変数であるiの中身が5以下の場合、「(入力した数字) <= 5」、5より上であれば「(入力した数字) > 5」と表示するように処理を分岐させる場合は、次のようになります。
例:
val i = 1;
if (i <= 5) {
println("$i <= 5");
} else {
println("$i > 5");
}
when 文
if文よりも複雑な条件分岐を設定することが出来る構文です。C言語やJavaにおけるswitch文に近い動作をしますが、breakによる終了処理が不要です。多くの条件を処理して実行するコードを記述する場合はwhen文を使うとよいでしょう。
なお、条件が、範囲や配列に含まれるかの判定や、否定条件も設定できるなど、switch文よりも強力な条件処理が行えます。
iに入力された数字が1であれば「1 == 1」、2であれば「2 == 2」、それ以外であれば「(入力された数字) >= 3」を出力する処理の場合は、次のようになります。
例:
val i:Int = 1;
when (i) {
1 -> {
print("$i == 1")
}
2 -> {
print("$i == 2")
}
else -> {
print("$i >= 3")
}
}
Kotlinを実行してみよう
ではここまでで紹介した文法をもとに、実際にKotlinのサンプルコードを実行してみましょう。
Kotlinの開発環境はローカル環境に構築するのであれば前述の「IntelliJ IDEA」がおすすめです。しかし、入門段階でまずは簡単なコードを実行してみたいという人には、Kotlin Playground(https://play.kotlinlang.org/) などのオンラインでの実行環境があるので、こうしたサイトの利用をおすすめします。
このようなサイトでは、入力したコードをすぐに実行できる環境が整っているため、サンプルコードを見ながら触れてみたいという人にとって、言語に挑戦するハードルが非常に低くなっています。
Hello World
まずは定番のHello Worldを出力します。
下記のコードを実行画面に貼り付け、RUNを押して実行してみましょう。
サンプルコード:
fun main() {
println("Hello World");
}
上の部分に入力したコードが実行され、画面の下半分に結果が表示されました。無事「Hello World」が表示され、構文エラーがなかったことが分かります。
サンプルコードの解説
サンプルコードでは、Kotlin実行時に最初に呼ばれるmain関数を定義し、その中で文字出力の関数であるprintln関数を呼び出しています。
for と if を使用した実行例
それでは次に、for文とif文を組み合わせたコードを実行してみましょう。復習になりますが、forは指定された終了条件に到達するまで同じ処理を繰り返すループ構文です。ifは条件によって処理を分岐させる構文です。
サンプルコード:
fun main() {
val myList = listOf(1,2,3,4,5);
for (i in myList) {
if (i < 5) {
println("$i < 5");
} else {
println("$i >= 5");
}
}
}
実際に実行すると、5行分の出力結果が表示されているのが分かります。forの条件変更や、ifの条件変更などで、出力内容や範囲を変更することもできます。
サンプルコードの解説
このソースコードでは、読み取り専用のリストを作成する関数listOfで指定した1から5までの数字のリストを、一つずつ変数 i に代入し、5未満であれば「1 < 5」「2 < 5」のように出力して処理を繰り返します。5以上になると「5 >= 5」と表示し、forの処理も終了します。
for と when を使用した実行例
先程のif文はwhen文に置き換えることもできます。最後にforとwhenを使用したサンプルコードをご紹介します。
サンプルコード:
fun main() {
val myList = listOf(1,2,3,4,5)
for (i in myList) {
when (i) {
1 -> {
println("$i == 1")
}
2 -> {
println("$i == 2")
}
else -> {
println("$i >= 3")
}
}
}
}
入力された数字によって条件に沿った処理を行い、文字列を出力しています。この条件をさらに複雑化することで、より高度な条件設定による処理が可能になるのがwhen構文の特徴です。
サンプルコードの解説
このサンプルコードでは、先ほどと同様にlistOfで指定した1~5の5つの数字をfor文で順番に処理していきます。
その後when文で、iに入力された数字によって表示される文字列を分岐させます。
このソースコードでは、1であれば「1 == 1」、2であれば「2 == 2」、3以上であれば「3 >= 3」、「4 >= 3」、「5 >= 3」と表示されるようになっています。
Android開発で人気上昇中のKotlinを試してみよう
KotlinはJavaに近いプログラミング言語ですが、簡潔化を意識して作られているため、簡単な基礎構文から処理に慣れていけば、コーディングの習得は難しくありません。メモ帳のような簡単なアプリであれば、初心者でもサンプルコードを見ながらさほど時間を掛けず完成させることができます。
比較的新しい言語であるKotlinですが、Androidの公式言語として、開発現場でシェアが拡大しています。またJavaとの共通性もあるため、特にJavaをすでに経験している人の場合、扱いやすいという特徴があります。アプリ開発がしたいと考えているエンジニアであれば挑戦してみてはいかがでしょうか。
AKKODiSでは、Kotlinのエンジニア求人を多数扱っています。スマホアプリ開発の求人が多くあり、経験の度合いに応じた案件をご紹介できますので、ぜひ一度ご相談ください。
(2020年8月現在)