問題タブ [scala-option]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaでnullを返すメソッドをScalaのOptionでラップしますか?
私がメソッドを持っているが、session.get(str: String): String
それがJavaから来ているので、それが文字列を返すのかnullを返すのかわからないとします。
代わりにScalaでこれを処理する簡単な方法はありsession.get("foo") == null
ますか?たぶん、いくつかの魔法が次のようToOption(session.get("foo"))
に適用され、それから私はそれをScalaのように扱うことができます
scala - 理解のためにリストを使用してオプションを作成すると、順序に応じてタイプの不一致が発生します
この構造がScalaでタイプミスマッチエラーを引き起こすのはなぜですか?
一部をリストに切り替えると、正常にコンパイルされます。
これも正常に機能します。
scala - Option[X] の Scala コレクションを X のコレクションに変換する方法
私は Scala を探求し始めています。私が興味をそそられていることの 1 つは、関連するエラーOption
を排除できる型と約束です。null
ただし、たとえば のリスト (または他のコレクション) を のコレクションに変換する方法を見つけることができませんでしたOption[String]
(String
明らかに である値を除外しますNone
)。
言い換えれば、これからどうやって得るのですか:
...これに:
それが答えに影響を与える場合、私はScala 2.8を使用しています。
scala - AnyRef を Option にボックス化するメソッドはどこにありますか?
James Iry によるこのブログ投稿で、彼は次のように書いています。
さらに、Scala には、null かどうかに応じて、値を Some(value) または None に昇格させる「オプション」メソッドがあります ...
option
scaladoc のどこにもこのメソッドが見つからないようです。
Iulian Dragos の gdata クライアント プロジェクトには、おそらく James が言及していたメソッドが含まれています。
scaladoc のどこでこのメソッドを見つけることができるか指摘してください。
PS私は次のような方法を持っています:
私はそれを次のように変更する必要があるかどうかについて 2 つの考えがあります。
クライアントは で呼び出すことができるためnull
です。現在、最初のインスタンスでは、文字列パラメーターが必要であり、option
前述の方法を使用して手動でボックス化しています。
scala - Option に fold メソッドがないのはなぜですか?
なぜこのようなscala.Option
メソッドfold
が定義されていないのだろうか:
に相当
map
+を使用するよりも良いことはありませんgetOrElse
か?
scala - Scala:2つ以上のオプションを備えたマップ
基本的に、私は次のことを行うための最もスカラのような方法を探しています:
これにより、正しい出力が得られます。
しかし、3つ以上のオプションを合計するには、あまりにも多くif
のsを使用するか、ある種のループを使用する必要があります。
編集-1:
質問を書いている間、私はある種の答えを思いついた:
これは私の経験の浅い目には非常に慣用的に見えます。これは、3つ以上の値でも機能します。それでも、リストに変換せずに同じことを行うことは可能ですか?
編集-2:
私はこの解決策に行き着きました(ziggystarのおかげで):
編集-3:
Landeiのおかげで別の選択肢:
scala - Scala Option[(A, B)] パターンマッチング
私はJavaコードジェネレーターを書いています。
java.sql.Types
[Int] から(String, String)
、最初の値が Java 型であり、2 番目の値がデフォルトでインポートされない場合に型をインポートする Java パッケージであるタプルへのマッピングを含む不変の Map があります ( java.lang
):
このマップの検索でパターン マッチを試みています。データベース メタデータdataType
の値は次のとおりです。java.sql.Types
コンパイラは最初にエラーを出していますcase
(で始まりますcase Some(jType, Some(iType))
):error: wrong number of arguments for <none>: (x: (java.lang.String, Option[java.lang.String]))Some[(java.lang.String, Option[java.lang.String])]
何が悪いのかわかりません。
scala - ネストされたScalaマッチャーはなぜSome(Some(1),1)が一致しないのですか?
ネストされたマッチングが機能しないようです。これは奇妙な制限です。
動作の例は次のとおりです。
これは機能します:
今、私はただの愚痴ですか、それともこれを達成するためのより良い方法はありますか?
scala - Optionの代わりにnullを返すScalaメソッドとその理由は何ですか?
標準ライブラリが完全に無料であるかどうか、そうでない場合は、インスタンスを返すよりも返す方が望ましいnull
合理的なユースケースが存在するかどうかに関心があるのではないかと思います。null
Option