kotlinのメモです。
862 views
kotlinでは以下のように配列などをforeachで処理することが多い。
val data = arrayOf(1,2,3)
data.forEach{
println(it)
}
このforeachの正体は一体何なのかという質問を受けた。
正体は関数コールバック。
C言語をやっている人なら以下のコードを見れば、大方理解できるはず。
fun myForEach(callback:(value:Int)->Unit){
val data = arrayOf(1,2,3)
for(i in 0 until data.count()) {
callback(data[i])
}
}
fun get(value:Int) {
println(value)
}
fun main(args:Array<String>){
//C言語チックに書いてみた
myForEach(::get)
//kotlinだとこう書く。
myForEach(){
println(it)
}
//kotlinだとこうも書く。
myForEach {
println(it)
}
}
1行目のmyForEach関数の引数に関数を指定できるようにしておく。
4行目で、引数に渡されたコールバック関数に値を渡す。
8~10行目は、コールバックされる関数を書いている。
15行目はC言語チックに関数コールバックを使ってget関数を呼び出している。
18行目~20行目は、関数コールバックを使わずに、kotlinっぽく書いているが、やっていることは15行目と同じ。
同様に23行目~24行目もkotlinっぽく関数コールバックを使わずに指定している。
基本的には23~25行目の書き方をすることが多い(私見)。
以上。
Page 24 of 36.
マッスル
本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。
https://www.osumoi-stdio.com/pyarticle/