初心者用kotlin

kotlinのメモです。

739 views

ラムダ式

ラムダ式は、引数1個のときだいぶ強力。引数2個でも強力だけど、引数1個ではかけた記述(it)が2個では使えない点に注意。以下の16行目が該当する。

引数一個版

fun normal_func(num:Int) {
    println("normal_func ${num}")
}

fun main(args:Array<String>) {
    val list = arrayOf(1,2,3,4)
    //javaっぽい書き方
    list.forEach(::normal_func)
    //ラムダあんまりうれしくない
    list.forEach({num:Int->println(num) })
    //ラムダ(省略
    list.forEach {num:Int->println(num)}
    //ラムダ 型も省略(一個のときだけ)
    list.forEach {num->println(num)}
    //引数が一個のときはitでも取れる
    list.forEach { println(it) }
}

引数2個版

fun normal_func(num:Int) {
    println("normal_func ${num}")
}

fun parentfun(callback:(name:String, num:Int)->Unit){
    val name:Array<String> = arrayOf("りんご", "みかん")
    val num:Array<Int> = arrayOf(100, 200)
    for(i in 0..1){
        callback(name[i], num[i])
    }
}
fun arg2fun(name:String, num:Int) {
    println("${name} ${num}")
}


fun main(args:Array<String>) {
    //自作 Cとかjavaチック形式
    parentfun(::arg2fun)

    //ラムダうれしくない形式
    parentfun({name:String, num:Int->println("${name} ${num}")})

    //ラムダうれしくない形式
    parentfun(){name:String, num:Int->println("${name} ${num}")}

    //ラムダベスト
    parentfun{name:String, num:Int->println("${name} ${num}")}
    //関数でやってみた
    parentfun{name:String, num:Int->arg2fun(name, num)}
}

Page 12 of 36.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626