Kotlin(\*´Д`)ハァハァ ======================= Kotlinは、IntelliJ IDEAで有名なJetBrainsさんが作ってるプログラミング言語。 静的に型付けされた言語で、JVM上で実行することができる。 また、JavaScriptへの変換もできる。 何よりも名前がかわゆく、女子力が高まる感じが非常に良い言語である。 Kotlinの動かし方 ---------------- とりあえず実行するならブラウザで動く `Kotlin Web Demo `_ 。 Kotlinお手軽。 ちゃんとやるなら `IntelliJ IDEA `_ 。 日本だとお髭のイケメンさんがライセンスの販売代理店をやっている。 でも Yosemite で起動するとJava6が無いと怒られる。 `:;(∩´﹏`∩);:` 検索するとさっきの代理店のブログが見つかった。→ http://samuraism.com/2014/10/17/2555 無事起動できた!! `(`・ω・´)` IntelliJ IDEA → Preferences... → Plugins → Install JetBrains plugin... ボタン → "kotlin"で探してInstall plugin!! IntelliJ IDEA再起動してインストール完了 `\(^o^)/` 後の細かいところは https://sites.google.com/site/tarokotlin/chap2/sec24 に任せたっ! Hello World!! --------------------- Hello Worldの例。かわゆさある。 .. code-block:: java package hello // main関数はパッケージレベルのファンクションで宣言する fun main(args: Array) { println("Hello World!") } Classの定義 --------------------- Classのコンストラクタは1つだけしか定義出来ない (コンストラクタオーバーロードできない)。 プライマリコンストラクタと呼ばれる。 クラスメンバ変数はval(不変)かvar(可変)で宣言する。 .. code-block:: java class Syobochim() { val range = 1..10 } メソッドはこう書ける。 .. code-block:: java fun main(args: Array) { val syobochim = Syobochim() syobochim.say() // 女子力! } class Syobochim() { fun say() { println("女子力!") } } staticメソッドは無い。 「それはパッケージレベルの関数でいいんでない?」とJetBrainsさんも仰っている。 そして「どーしても必要ならScalaのコンパニオンオブジェクトみたいなclass objectってのがあるよ。」と寛容さを見せるKotlin。 http://kotlinlang.org/docs/reference/classes.html#class-objects publicとかprivateは4種類ある. private 同一スコープからしか見えない protected private+子クラスからしか見えない internal これがデフォルト 同じモジュールの中からは見える public どこからでも見える 高階関数 --------------------- Kotlinでは高階関数が使える。 .. code-block:: java fun Syobochim.templeatePattern(f : (Int) -> Unit) { for(i in this.range) { f(i) } } 使用例。 .. code-block:: java fun main(args : Array) { val syobo = Syobochim() syobo.templeatePattern { println("財布ない!") } } KotlinからJavaを使う -------------------- そのままJavaのクラスがimportできる。 .. code-block:: java import java.util.ArrayList fun main(args: Array) { println("Hello, World!") listSample() } fun listSample() { val list = ArrayList() list.add(0) list.add(1) list.add(2) for (i in list) { println("number is $i") } } JavaからKotlinを使う -------------------- KotlinはJVM言語なのでbytecodeになってしまえばJavaから呼べる。 各種情報源 ---------- + `公式サイト `_ + `GitHubレポジトリ `_ `@ngsw_taro `_ さんが頑張ってるAdvent Calendarと資料。 + `Kotlin Advent Calendar 2012 (全部俺) JavaプログラマのためのKotlin入門 `_ + `Kotlin Advent Calendar 2013 `_ + `Kotlin Advent Calendar 2014 `_ + `JVM言語のかわいいルーキー Kotlinの紹介 `_ + `プログラミング言語Kotlin 解説 `_