1. ホーム
  2. scala

[解決済み] Scalaの慣用表現「flatmap that s*** 」はどこから来たのか?

2022-12-02 05:15:59

質問

flatmapの何がそんなに強力で、Scalaのフォークロアにふさわしいのでしょうか?

どのように解決するのですか?

このフレーズの背後にある理由は、あなたが書く多くの退屈なif/then/elseコードをflatMap(および他の高次関数)の呼び出しに置き換えることができることです。

これは特にOptionsに当てはまります( http://tonymorris.github.io/blog/posts/scalaoption-cheat-sheet/ )

しかし、それは他のモナドにも適用されます (正直なところ、私自身はまだ詳細を正確に理解していませんが)

あるコレクションに対して、関数(または一連の関数)を適用し、各関数がnullを返すかもしれない状況を想像してみてください。実際に null を使用する場合、コードは null チェックでいっぱいになります。しかし、値の代わりにオプションを使用する場合、値を目的の関数でフラットマップし、複数の関数の場合は関数をチェーンして、null ではない結果だけのコレクションを取得することができます。

この説明はかなり複雑なので、より短いアドバイスである "just flatmap that shit" がそれ自体を確立しました。