見出し画像

JavaからKotlinいってみる

これまでJavaについて学習し、2つの簡単なアプリケーションを作ることでJavaの理解を深めてきました。その学習の派生として最近話題のKotlinを学習していきたいと思います!
そもそもKotlinがどのような言語なのか、概要から学習を進めていきます。

・Kotlinとは

Kotlinは、Javaの統合開発環境であるIntelliJ IDEAで有名なJetBrainsが開発したオブジェクト指向プログラミング言語です。言語構文自体はJavaとは互換性がない独自方式ですが、コンパイルされたコードはJava VM(仮想マシン)上で動作するため、これまでのJava資産の多くを流用できるという特徴を持っています。

 なお、Java以外でJava VM上で動作する言語には、Kotlin以前にも表1のような言語が存在します。そのため、Java VMを基盤とする非Java言語はKotlinが初めてというわけではありません。

Javaとは互換性がないものの、コンパイルされたコードはJava VM上で動作するため、これまでのJava資産の多くを流用できるという特徴を持っているとのことです。Javaを触れていれば、馴染みが良さそうです。

また、JavaVMを基盤とする非Java言語、、というのが気になったので、Kotlinの他、どういった言語が存在しているのか調べてみました!

・JRuby
RubyをJava VM上に移植したもの
・Groovy
Javaに近い記法が可能なスクリプト言語
・Scala
関数型言語とオブジェクト指向言語の両方の特徴を持ったマルチパラダイムなプログラミング言語

・Kotlinの特徴

実際のコードを見ながら、Kotlinの特徴をもう少し詳しく勉強していきます。

//main関数。関数定義はfunを使う
//クラスなしでいきなり関数を宣言可能
fun main(args:Array<String>) {
    //行末はセミコロンなし
    val message: String = "FizzBuzz start!"
    println(message)
    //for .. inを使える
    for(i in 1..100){
      var ret: String
      ret = fizzbuzz(i)
      println(ret)
    }
}
 
/* fizzbuzz処理を行う関数
   引数はInt、戻り値はString*/
fun fizzbuzz(value: Int): String{
    if(value % 15 == 0)
      return "FizzBuzz"
    //whenを使うと、条件をラムダ式で羅列できる
    return when {
      (value % 3 == 0) -> "Fizz"
      (value % 5 == 0) -> "Buzz"
      else -> value.toString()
    }
}

Kotlinには以下のような特徴があります!

・行末のセミコロンが省略可能
・クラスなしで関数を定義可能
・関数定義は「fun」
・変数宣言は「var(書き換え可能)」と「val(書き換え不可)」がある
・型宣言が「:データ型」と後ろに型名を記載する

セミコロンの有無や、型宣言などは、その言語の特徴として捉えれば良さそうですが、クラスなしで定義可能などKotlin特有の属性については実際にコードを読みながら、書きながら覚えていきたいと思います。

次回は、関数定義や変数定義にスポットライト当てて、アイトプットしていきます!


この記事が気に入ったらサポートをしてみませんか?