kotlinのメモです。
1091 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。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/