初心者用kotlin

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/

ツイッター

@darkimpact0626