Slide 1

Slide 1 text

Kotlin入門しました @gedorinku

Slide 2

Slide 2 text

Kotlin #とは • JetBrainsが作った言語 • JVMで動く • Androidでも使える • 安全で簡潔な記述ができる • null安全 • SAM変換 • 拡張関数 • delegation とか • 名前がかわいい

Slide 3

Slide 3 text

null安全ー?なにそれー? JavaやKotlinはnullを参照すると ぬるぽ(NullPointerException)で止まる 回避するにはnullを参照しようとしてないか 頑張ってチェックする・・・?

Slide 4

Slide 4 text

null許容型・非null型 fun main(args: Array) { var hoge: Array = null var piyo: Array? = null //something to do val evenCount = piyo?.count { it % 2 == 0 } ?: 0 } ←コンパイルエラー ←OK null許容型はnullチェックして参照しないとコンパイルエラー

Slide 5

Slide 5 text

Javaとの連携とSAM変換 val runnable = Runnable { println("hogehoge") } KotlinからJavaのクラスは普通に使える 抽象メソッド1つを実装した匿名クラスは簡潔に書ける (Java8っぽい)

Slide 6

Slide 6 text

拡張関数・拡張プロパティ 既存のクラスに後からメソッドを追加する機能 fun String.chan(): String = this + "-chan" println("Serval".chan()) //-> Serval-chan

Slide 7

Slide 7 text

キモイことができます operator fun Int.invoke(): Int = this * 2 fun Int.println() = println(this) 1()()().println() //-> 8

Slide 8

Slide 8 text

既存のクラスに後からメソッドを追加する機能 //-> [0, 8, 16] fun Array.applyMany( times: Int, f: Array.() -> Unit ): Array { for (i in 1..times) { f() } return this } fun main(args: Array) { println(arrayOf(0, 1, 2).applyMany(3) { forEachIndexed { index, i -> this[index] = i * 2 } }.toList()) }

Slide 9

Slide 9 text

Kotlin Koans IDEを使って チュートリアルをやると 幸せになれる 全部理解できたらプロ.

Slide 10

Slide 10 text

Kotlin Koans Kotlin Koansを進めると, いい感じのgif付きで ツイートできる Kotlin KoansでKotlinを はじめましょう