LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

Kotlinに触れてみる

Posted at

今日の目標

Kotlinに触れてみる

使うもの

  • Eclipse(Pleiades)4.5 mars
  • Kotlin Plugin for Eclipse 0.5.0
    • Eclipseのマーケットプレースで探すと出てきます
  • Windows 8.1

参考

Kotlinとは

Kotlin(ことりん、コトリン)は、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、静的型付けのオブジェクト指向プログラミング言語である。
(中略)
Kotlin言語は、同社の経験を活かしJava言語をもっと簡潔・安全になるように改良した産業利用向け汎用言語として開発され、2011年7月20日に発表された。
オペーレーティング・システムによらずJava仮想マシン上で動く。Java言語が書かれたプログラムと同じほど速くコンパイルされ同じほど速く動作するとしている。(wikipedia-Kotlin

JetBrains社はIntelliJ IDEA等を作ったところですね。IntelliJくらいしか聞いたことなかったので、KotlinがJetBrains社製だと聞いて驚きました。言語とか作ってたんだ、へえー。名前がとてもかわいい。

ではスタート

EclipseにKotlin Pluginを入れたら、新規でKotlinプロジェクトが作れるようになります。
Kotlin1.png

HelloKotlinを作ります
Kotlin2.png

ちゃんとKotlinのライブラリが見えます。
Kotlin3.png

Javaだとこの後パッケージを作ってクラスを作って、という流れになりますが、公式のGetting Started見ると、KotlinのFileを作るんですね。クラスではないのか。

HelloKotlin.kt
fun main(args: Array<String>) {
    println("Hello, Kotlin!")
}

結果。
Kotlin5.png

Kotlinはトップレベルに直接関数を置くことができるようです。エントリポイント(どこから実行するか)はmain(args : Array<String>)とのこと。インスタンスを作ったりしないのであればクラスは要らないのかな?

関数も一つ作ってみました。

HelloKotlin.kt
fun main(args: Array<String>) {
    val name = showName()
    println("Hello, $name. Welcome to Kotlin!")
}

fun showName() : String = "tori"

printlnで文字結合できないなあ、とか思ってたら、scalaと一緒の書き方なんですね。通りで+で結合できないわけだ…。

せっかくなのでClassも作ってみました。

Person.kt
public class Person(firstName : String, familyName : String) {
    val name = firstName + familyName
}
HelloKotlin.kt
fun main(args: Array<String>) {
    val name = showName()
    println("Hello, $name. Welcome to Kotlin!")
}

fun showName() : String {
    val torinist = Person("tori", "nist")
    return torinist.name
}

実行結果。
Kotlin6.png

なかなかクラスの書き方に慣れない。Javaみたいに作るのかなあ、とか思って下のように書いたらコンパイラ先生に怒られました。先生すみません。

Person.kt
public class Person() {
    var name : String

    fun Person(firstName : String, familyName : String) {
        name = firstName + familyName
    }
}

匿名のイニシャライザとやらを使えば良いとの情報を見つけて、下記に書き換えてもダメでした。うーん。

Person.kt
public class Person(firstName : String, familyName : String) {
  val name : String

  {
    name = firstName + familyName
  }
}

何がダメなのかはわからなかったので、もう少し触ってみる必要がありそうです…。
Javaの書き方に慣れているとこういう言語は混乱しますね。慣れれば早く開発できそうですが(記述が少なくなるため)、慣れないうちは結構戸惑います。面白いですけどね。

2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up