[解決済み] 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" がそれ自体を確立しました。
関連
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み】Scalaの記号演算子にはどんな意味があるの?
-
[解決済み】Scalaでjava.String.formatを使用する方法は?
-
[解決済み】タイプセーフのenum型をモデル化する方法は?
-
[解決済み】Scalaはどこでimplicitを探すのか?
-
[解決済み] Scala コンパイラは、なぜデフォルトの引数を持つオーバーロードされたメソッドを許可しないのですか?
-
[解決済み] 述語で配列を2つに分割するには?
-
[解決済み] リスト[Option]からNoneを除外するには?
-
[解決済み] 単純な case class の順序を定義する簡単な慣用的方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] RDDの内容を印刷するには?
-
[解決済み] IntelliJ IDEAで依存関係が変更された後、build.sbtから強制的に再ロードするには?
-
[解決済み] ネストした構造体をよりきれいに更新する方法
-
[解決済み] Scalaのパターンマッチはなぜ変数で機能しないのですか?
-
[解決済み] scalaは推論される型の「許容される複雑さ」にどのような制限を設けているのでしょうか?
-
[解決済み] Any、AnyVal、AnyRef、Objectの関係と、Javaコードでのマッピングについて教えてください。
-
[解決済み] ジッパーがコモナドである理由を理解する
-
[解決済み] Scala の Case Classes のオーバーロード・コンストラクタ?
-
[解決済み] Scalaのアクター:受信と反応
-
[解決済み] Scalaでimmutable.Mapをmutable.Mapに変換するにはどうしたらいいですか?