scalaのID関数はありますか?
2023-09-25 13:01:56
質問
のようなものがある場合
List[Option[A]]
のようなものがあり、これを
List[A]
に変換したい場合、標準的な方法としては
flatMap
:
scala> val l = List(Some("Hello"), None, Some("World"))
l: List[Option[java.lang.String]] = List(Some(Hello), None, Some(World))
scala> l.flatMap( o => o)
res0: List[java.lang.String] = List(Hello, World)
現在
o => o
は単なる恒等式関数です。何か方法があると思ったんだけどな。
l.flatMap(Identity) //return a List[String]
を生成することができないので、これを動作させることはできません。
object
. 私はいくつかのことを試しましたが、無駄でした。誰かこのようなものが動作するようにしたことがありますか?
どのように解決するのですか?
IDがある 関数があります。 .
l flatMap identity[Option[String]]
> List[String] = List(Hello, World)
A for expresionの方がすっきりしていると思います。
for(x <- l; y <- x) yield y
編集します。
なぜ型パラメータ(Option[String])が必要なのか、考えてみました。問題はOption[T]からIterable[T]への型変換にあるようです。
ID関数を次のように定義すると
l.flatMap( x => Option.option2Iterable(identity(x)))
は、typeパラメータを省略することができます。
関連
-
[解決済み] オブジェクトのためのマップ関数(配列の代わりに)
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み] 関数型プログラミングで時間関数が存在するのはなぜですか?
-
[解決済み] 機能的デザインパターン【終了しました
-
[解決済み] Scalaのcaseクラスを宣言することのデメリットは何ですか?
-
[解決済み] Scalaで2つ以上のリストをまとめてzipで圧縮することはできますか?
-
[解決済み] Spark Dataframeの最初の1000行を取得する方法はありますか?
-
[解決済み] Scala Mapのキーと値の両方をマッピングする
-
[解決済み] Scalaで関数を定義する3つの方法の違い
-
[解決済み] Scala における => と () => の意味 [重複].
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] IntelliJ IDEAで依存関係が変更された後、build.sbtから強制的に再ロードするには?
-
[解決済み] scalaの列挙を理解する
-
[解決済み] private[this] vs private
-
[解決済み] HDFSではなく、ローカルファイルをsc.textFileで読み込む方法
-
[解決済み] Scalaの自動リソース管理にはどのようなものがありますか?
-
[解決済み] Scala の "new" キーワード
-
[解決済み] なぜ `private val` と `private final val` は違うのですか?
-
[解決済み] Spark Dataframeの最初の1000行を取得する方法はありますか?
-
[解決済み] scalaのマップを反復処理するには?
-
[解決済み] Scalaの代入が、代入された値ではなく、Unitで評価される動機は何ですか?