ラムダ式とは、無名関数の書き方の一つ。
無名関数とは名前付けされずに定義された関数のこと。
無名関数だと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]