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の例。かわゆさある。
package hello
// main関数はパッケージレベルのファンクションで宣言する
fun main(args: Array<String>) {
println("Hello World!")
}
Classの定義¶
Classのコンストラクタは1つだけしか定義出来ない (コンストラクタオーバーロードできない)。 プライマリコンストラクタと呼ばれる。 クラスメンバ変数はval(不変)かvar(可変)で宣言する。
class Syobochim() {
val range = 1..10
}
メソッドはこう書ける。
fun main(args: Array<String>) {
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では高階関数が使える。
fun Syobochim.templeatePattern(f : (Int) -> Unit) {
for(i in this.range) {
f(i)
}
}
使用例。
fun main(args : Array<String>) {
val syobo = Syobochim()
syobo.templeatePattern {
println("財布ない!")
}
}
KotlinからJavaを使う¶
そのままJavaのクラスがimportできる。
import java.util.ArrayList
fun main(args: Array<String>) {
println("Hello, World!")
listSample()
}
fun listSample() {
val list = ArrayList<Int>()
list.add(0)
list.add(1)
list.add(2)
for (i in list) {
println("number is $i")
}
}
JavaからKotlinを使う¶
KotlinはJVM言語なのでbytecodeになってしまえばJavaから呼べる。