ラムダ式とデリゲート
ラムダ式:関数を極力省略させる書き方。=>の左右で引数と処理を定義する。関数名はつけられない。さらに、引数の方や戻り値を省略できる。
デリゲート:変数化された関数のこと。ラムダ式をデリゲートに入れることで使用されることが多い。ある関数の引数にデリゲートを入れると自由に差し替えることができる。
デリゲートの記法:デリゲートは実質、関数であるため、引数や戻り値の「型」の組み合わせが複数存在する。例えば、引数なし戻り値ないの「Action」。引数あり返り値なしの「Action<T>」T型を引数にとれる。引数なし返り値ありの「Func<TResult> 」。引数あり返り値ありの「Func<T, TResult>」など。
stream
イテレーション:要素の集まりに対する繰り返し処理
steamの流れ:以下に尽きる。
基本的な流れ
1. コレクションからstreamを取得
2. streamに対して満足するまで「中間操作」を実行。コレクションの中身を都合よく変換
3. 「終端操作」で変換したコレクションの中身に対して処理を適用する
from: https://qiita.com/takumi-n/items/369dd3fcb9ccb8fcfa44
中間操作と終端操作でラムダ式が使われる。ここで気をつけたいのが、メソッド(と呼んでいいのか?filterやらforeachのこと)によって、引数と戻り値で取れる型が変わること。
疑問
Javaでは、デリゲートはどうなる?
終端操作は、foreach以外あるのか?
参考資料
https://qiita.com/takumi-n/items/369dd3fcb9ccb8fcfa44
https://qiita.com/toRisouP/items/98cc4966d392b7f21c30
https://morizyun.github.io/java/basic-itarator.html