今日の目標
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プロジェクトが作れるようになります。
Javaだとこの後パッケージを作ってクラスを作って、という流れになりますが、公式のGetting Started見ると、KotlinのFileを作るんですね。クラスではないのか。
fun main(args: Array<String>) {
println("Hello, Kotlin!")
}
Kotlinはトップレベルに直接関数を置くことができるようです。エントリポイント(どこから実行するか)はmain(args : Array<String>)
とのこと。インスタンスを作ったりしないのであればクラスは要らないのかな?
関数も一つ作ってみました。
fun main(args: Array<String>) {
val name = showName()
println("Hello, $name. Welcome to Kotlin!")
}
fun showName() : String = "tori"
printlnで文字結合できないなあ、とか思ってたら、scalaと一緒の書き方なんですね。通りで+で結合できないわけだ…。
せっかくなのでClassも作ってみました。
public class Person(firstName : String, familyName : String) {
val name = firstName + familyName
}
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
}
なかなかクラスの書き方に慣れない。Javaみたいに作るのかなあ、とか思って下のように書いたらコンパイラ先生に怒られました。先生すみません。
public class Person() {
var name : String
fun Person(firstName : String, familyName : String) {
name = firstName + familyName
}
}
匿名のイニシャライザとやらを使えば良いとの情報を見つけて、下記に書き換えてもダメでした。うーん。
public class Person(firstName : String, familyName : String) {
val name : String
{
name = firstName + familyName
}
}
何がダメなのかはわからなかったので、もう少し触ってみる必要がありそうです…。
Javaの書き方に慣れているとこういう言語は混乱しますね。慣れれば早く開発できそうですが(記述が少なくなるため)、慣れないうちは結構戸惑います。面白いですけどね。