ユーザ用ツール

サイト用ツール


サイドバー

kotlin:ラムダ式

ラムダ式

ラムダ式とは、無名関数の書き方の一つ。
無名関数とは名前付けされずに定義された関数のこと。

無名関数だとNewしてOverrideするところを、ラムダ式だと簡潔にかける。

// Java無名関数
public class Main {
 
    public static void main(String[] args) {
        Runnable r = new Runnable(){
            @Override
            public void run() {
                System.out.println("Hello lambda.");
            }
        };
        r.run(); // Hello lambda.
    }
}

 ↓

// Javaラムダ式
public class Main {
 
    public static void main(String[] args) {
        Runnable r = () -> { System.out.println("Hello lambda."); };
        r.run();
    }
}

 ↓

// kotlinラムダ式
public class Main {
    fun main(args: Array<String>) {
        val r = {print("Hello lambda")}
        r()
    }
}

省略

    val ints = listOf<Int>(1,3,5)
    
    // ラムダの基本 { パラメータ -> メソッドの処理 }
    val doubled = ints.map({ it -> it * 2 })
     ↓    
    // ラムダがその呼び出しに唯一の引数である場合、呼び出しの括弧を完全に省略することができる
    val doubled = ints.map { it -> it * 2 }
     ↓    
    // 関数リテラルがパラメータを1つだけ持つ場合、その宣言を( -> と一緒に)省略してもよい
    // その場合、その名前は、 it になります。
    val doubled = ints.map { it * 2 }
    
>>>    println("doubled=${doubled}")
doubled=[2, 6, 10]
kotlin/ラムダ式.txt · 最終更新: 2019/12/29 14:24 by ips