2016/12/07の30分 Kotlinメモ💯

2016/12/07の30分 Kotlinメモ💯

書いてるコードは雑にここにあります。

github.com

infix

https://kotlinlang.org/docs/reference/functions.html#infix-notation

これいいねー。乱用したらやばそうだけど...

infix fun Int.max(that: Int) = Math.max(this, that)

val i1 = 1
val i2 = 5
println(i1 max i2) // 5

Higher-Order Functions and Lambdas

https://kotlinlang.org/docs/reference/lambdas.html

うーん、、、これはなかなか理解しづらい。。。

とりあえず変なコード書いてみたけど、、、

戻り値が不要な時はUnitでいいのかな?Unit書かない方法ないのかなー

ここはとりあえず色んなコード書いてみて理解するしかなさそう

// huhu は () -> Unit の関数型で、引数なしで戻り値なし関数を表している
fun huhu(huhu: () -> Unit) {
    huhu()
}

// huhu は () -> Unit の関数型で、引数なしで戻り値Stringを返す関数を表している
fun huhu2(huhu: () -> String): String {
    return huhu()
}

// 呼び出し
fun fun1() = fun() {
    println("huhu")
}

huhu(fun1())

huhu(fun() {
    println("huhu")
})

huhu {
    println("huhu")
}

println(huhu2(fun(): String {
    return "hogehoge"
}))

println(huhu2 {
    "test"
})

まとめ

どんどん難しくなってきた...