問題タブ [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.

0 投票する
6 に答える
4935 参照

scala - T から Option[T] への暗黙的な変換を Scala で追加/作成できますか?

これは物事をもう少し効率的にする機会ですか (プロランマーにとって): でラップする必要があるのは少し面倒だと思いSomeますSome(5)。このようなものはどうですか:

0 投票する
3 に答える
33649 参照

scala - Scalaの恒等関数はありますか?

私がのようなものを持っていてList[Option[A]]、これをに変換したいList[A]場合、標準的な方法は次を使用することflatMapです:

o => oは単なる恒等関数です。私は何かする方法があるだろうと思ったでしょう:

ただし、を生成できないため、これを機能させることはできませんobject。私は役に立たないいくつかのことを試みました。誰かがこのようなものを機能させることができますか?

0 投票する
3 に答える
3034 参照

scala - X => Option[R] を PartialFunction[X,R] に変換する方法

がある限り、PartialFunction[X,R]それを返す関数に変換するのは非常に簡単ですOption[R]

ただし、タスクが逆の場合はどうなるでしょうか。引数としてf取得し、結果として返す関数があるとします。そして、私はそれを作りたいと思っています。最善の方法は何ですか?XOption[R]PartialFunction[X,R]

私が思いついたものは、私の好みにはかなり醜く見えます:

私が逃したより良い方法はありますか?

0 投票する
5 に答える
2731 参照

scala - あらゆる場所で Option を使用すると、少しぎこちなくなります。私は何か間違ったことをしていますか?

OptionNullPointerException を回避するのに役立つクラスについて読んだ記事の結果として、あらゆる場所でこのクラスを使用するようになりました。次のようなものを想像してください。

後で私がそれを使用するとき:

このようなことをすることは、私にとってそれほど「正しい」とは感じません。.getまた、非推奨になっていることに気付きました。. この種のことは、皆さんが Option でも行っていることですか、それとも間違った方向に進んでいますか?

0 投票する
1 に答える
1835 参照

scala - Option が Iterable トレイトを直接拡張しないのはなぜですか?

Option暗黙的に - に変換可能ですが、直接Iterable実装するだけではないのはなぜですか:Iterable

編集: 実際には、2.8ではメソッドOptionを宣言するiteratorため、それよりもさらに複雑です:

0 投票する
4 に答える
3090 参照

scala - リフレクションを使用して実行時に Scala Option 宣言の型にアクセスする方法はありますか?

したがって、次のような Scala クラスがあります。

そして、私は文字列値を持っていて、リフレクションを使用して実行時にその Option[Int] に強制したいという問題に取り組んでいます。したがって、別のコード (TestClass について何も知らない) には、次のようなコードがあります。

これを行うには、フィールドが Option であり、Option の型パラメーターが Int であることを知る必要があります。

「値」のタイプが実行時に Option[Int] であることを理解するためのオプションは何ですか (つまり、リフレクションを使用します)?

@OptionType(Int.class) など、フィールドに注釈を付けることで同様の問題が解決されるのを見てきました。可能であれば、リフレクション ターゲットに注釈を必要としないソリューションを希望します。

0 投票する
2 に答える
33498 参照

scala - 高階関数を使用してオプションのリストを平坦化する方法は?

Scala 2.7.7 の使用:

オプションのリストがある場合、for-comprehension を使用してそれらをフラット化できます。

私はこのスタイルが好きではなく、むしろ HOF を使用します。この試行は冗長すぎて受け入れられません。

直感的には、次のように動作することを期待していましたが、そうではありません。

以下でも動作するはずですが、動作しません。

私が思いつくことができる最高のものは次のとおりです。

...しかし、オプションをリストに変換する必要はありません。それは不格好に思えます。

何かアドバイス?

0 投票する
5 に答える
7281 参照

list - リスト内の最初の Some で scala が返される

リストがl:List[T1]あり、現在次のことを行っています。

このmyfun関数は None または Some を返し、 flatten はすべての None を破棄し、 find はリストの最初の要素があればそれを返します。

これは私には少しハッキーに思えます。私は、これを少し無駄が少なく、より賢くするための理解などがあるかもしれないと考えています。例: list の実行中にanymyfunが返された場合、その後の回答は必要ありません。 Somemapl

0 投票する
4 に答える
1684 参照

scala - オプションモナドの流れを逆にするにはどうすればよいですか?

たとえば、エラーがない場合はNoneを返す「検証」関数がたくさんあり、そうでない場合はエラーメッセージを指定するSome(String)を返します。次のようなもの...

それらを順番に呼び出し、Some(String)を返すとすぐに停止して、同じものを返します。Noneが返された場合は、シーケンスが終了するまで次へ進みます。それらすべてがNoneを返す場合、私はNoneを返します。

それらを「表現のために」接着したいと思います。何かのようなもの ...

ただし、Optionは、ここで必要なものとは正反対に流れます。Noneで停止し、Some(String)が続きます。

どうすればそのようなことを達成できますか?

0 投票する
3 に答える
1865 参照

scala - Scalaのオプションモナド

オプションモナドはどのように機能するのですか?私はscalaapiを閲覧していますが、例があります(つまり、2番目のものです)。

理解のための方法のため、request.getParameterからNoneが返された場合、式全体がNoneになります。

しかし、私がこのコードを試してみると:

コンパイルエラーが発生します。これはどのように機能するはずですか?