参考
https://kotlinlang.org/docs/reference/
https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/
https://kotlinlang.org/docs/reference/scope-functions.html#function-selection
https://speakerdeck.com/sys1yagi/jie-pou-kotlin-baitokodowodu-mijie-ku
https://qiita.com/KenjiOtsuka/items/5caaaf2b4344ee8d617b
https://anopara.net/2017/09/16/kotlin%E3%81%AE%E6%B0%97%E3%81%AB%E5%85%A5%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D/
https://kmizu.hatenablog.com/entry/2016/03/22/134828
https://qiita.com/farman0629/items/e8b9bd6fc22d5fa9cfea
https://qiita.com/KenjiOtsuka/items/5caaaf2b4344ee8d617b
https://qiita.com/farman0629/items/e8b9bd6fc22d5fa9cfea
https://blog.y-yuki.net/entry/2019/05/13/100000
概要
JVMで動作する言語。Javaの文法の冗長的なところを書きやすくした感じ。
Javaと互換性があり、通常のJavaのコードを呼び出したりすることもできる。
jadでデコンパイルすると、至って普通のJavaのコードになっている。
環境
https://github.com/JetBrains/kotlin/releases/tag/v1.3.72
からダウンロードしてパスを通す。
sdkmanを使っても良い
https://sdkman.io/
その他
困ったら
基本的にはJavaなので、jadでデコンパイルすると実際は何をしているのかわかりやすい。
ラムダ式と無名関数
似ているけど、記述とreturnの動作が違う。
記述
ラムダ式
var f: (Int, Int) -> Int = { a: Int, b:Int -> a + b } println(f(1,2)) // return は書けない。
無名関数
var f2: (Int, Int) -> Int = fun(a:Int, b:Int):Int { return a + b } // return は必要(戻り値がある場合)
returnの動作
ラムダ式
var l = listOf(1,2,3) l.forEach { if (it == 2) return //ここで呼び出し元をreturnしてしまう println(it) }
無名関数
l.forEach(fun(it) { if (it == 2) return //continueと同じ。次の値に処理が移る println(it) })
コープ関数
https://kotlinlang.org/docs/reference/scope-functions.html#function-selection
let, run, also, applyは、それぞれ引数と戻り値が違うので状況により使い分けする。
ただし、runは2種類(拡張関数ではないものもある)あるので注意。
[カテゴリ: プログラミング言語 > Kotlin]
[通知用URL]
Tweet
最終更新時間:2020年08月10日 15時01分57秒