14行目: | 14行目: | ||
* 左オペランドで変数の型が指定されている場合、引数の型は省略できる | * 左オペランドで変数の型が指定されている場合、引数の型は省略できる | ||
* 引数が1つの場合はラムダ式の丸カッコも省略できる | * 引数が1つの場合はラムダ式の丸カッコも省略できる | ||
<u>IntToDoubleFunction</u> func = x -> { return x * x * 3.14; }; | <u>IntToDoubleFunction</u> func = <u> </u> x -> { return x * x * 3.14; }; | ||
* ラムダ式が単一の return文の場合、return文字と波括弧も省略できる | * ラムダ式が単一の return文の場合、return文字と波括弧も省略できる | ||
IntToDoubleFunction func = x -> x * x * 3.14; | IntToDoubleFunction func = x -> x * x * 3.14; |
2019年7月2日 (火) 16:24時点における版
< Java基本文法
- 機能オブジェクト を作るまでもなく、その場で簡易的にロジックを生成/利用できる
- そのロジックを格納するには同じ戻り値と引数を定義したSAMインターフェースを使う
import java.util.function.*; public class Main { IntBinaryOperator func = (int a, int b) -> { return a - b; }; int ans = func.applyAsInt(5, 3); System.out.println("5 - 3 = " + ans); } }
省略記法
- 左オペランドで変数の型が指定されている場合、引数の型は省略できる
- 引数が1つの場合はラムダ式の丸カッコも省略できる
IntToDoubleFunction func = x -> { return x * x * 3.14; };
- ラムダ式が単一の return文の場合、return文字と波括弧も省略できる
IntToDoubleFunction func = x -> x * x * 3.14;
利用例
// 勇者インスタンスのHPを取り出す (Hero h) -> { return h.getHp(); } // 現在の日時を取り出す () -> { return new java.util.date(); } // long配列のコピーを作り、並べ替えたものを取り出す (long[] arrays) -> { long[] newArrays = java.util.Arrays.copyOf(arrays, arrays.length); java.util.Arrays.sort(newArrays); return newArrays; }