ラムダ式の書き方
ラムダ式の書き方
ラムダ式の書き方
java8で導入されたラムダ式の省略について、忘備録代わりにメモ。
そこ、「いまさら?www」とか言わないで
動作環境について
実行環境は以下の通り。
突っ込みどころ満載なのは気のせい。
PC:MacBook Pro 2011early 15inch
OS:Windows 8.1(デュアルブート) 64bit版
メモリ:16GB(8GB x 2)
CPU:Core i7-2635QM 2.00GHz
javaのバージョン:java 8 Update102
ラムダ式の省略・まとめ
ラムダ式の省略・まとめ
ラムダ式の省略についてまとめると以下の表のようになる。練習問題とほとんど一緒とか言わないお約束。
省略個所 | 引数1つ | 引数なし 引数2つ以上 |
注意点 |
---|---|---|---|
引数のデータ型 | ○ 省略可能 | ○ 省略可能 | ・データ型が省略されている引数とされていない引数が混ざっている場合は省略できない。
※省略する場合は必ずすべての引数のデータ型を省略すること。 |
引数の( ) | △ 省略可能 ※ 条件付き |
× 省略不可 | ・引数なしの場合は省略できない。
・引数が2つ以上の場合は省略できない。 ・ 引数のデータ型が書いてあると( )は省略できない。
※引数が1つで、データ型が省略されている時のみ省略可能。 |
処理の{ } | △ 省略可能 ※ 条件付き |
△ 省略可能 ※ 条件付き |
・処理が2行以上にわたる場合は省略できない。
・処理が ; しかない場合は省略できない。(プログラムの構造がおかしくなるため) ・戻り値がある場合、return キーワードが書いてあると省略できない。
※処理が1行しかない場合は省略可能。戻り値がある場合は下記参照。 |
(戻り値がある場合) return キーワード |
△ 省略可能 ※ 条件付き |
△ 省略可能 ※ 条件付き |
・return 文以外の処理もある場合は省略できない。
・{ } が書いてあると省略できない。
※ 処理内容がreturn 文のみで、{ }も省略する場合のみ省略可能。その場合、処理内容には戻り値のみが書かれる。 ※ 戻り値そのものがなくなるわけではないので注意。 |
引数名 | × 省略できない | × 省略できない | ・引数名は省略できない。
※ただし、引数名はもとのインタフェースと異なっていても良い。ローカル変数のスコープに注意して変数名を定義すること。 |
->の右側の{ }についてが少々ややこしい気がするけれど、以下のように考えれば大丈夫なはず。
・処理内容から判断
処理が0行の時ー>{ }は省略できない。というか、そもそも処理が0行なんて書かない。
処理が1行(戻り値有り)の時ー>{ }を省略可能。return のキーワードは必ず省略する。
処理が1行(戻り値なし)の時ー>{ }を省略可能。ただし、;のみはだめ。
処理が2行以上の時ー>{ }は省略できない。
・{ }の有無から判断
{ }がある場合ー>処理は何行でもよい。戻り値がある場合はreturn キーワードは書かなければいけない。
{ }が無い場合ー>処理は1行でなければならない。その処理がreturn 文の場合、return のキーワードは必ず省略する。