====== ラムダ式 ====== ラムダ式とは、無名関数の書き方の一つ。 無名関数とは名前付けされずに定義された関数のこと。 無名関数だと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) { val r = {print("Hello lambda")} r() } } ===== 省略 ===== val ints = listOf(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]