問題タブ [coercion]

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 投票する
2 に答える
477 参照

java - Tapestry の双方向ブール強制を三方向強制で上書きするにはどうすればよいですか?

この場合を考えてみましょう。

いかなる方法でも変更または拡張できないクラスがあります。

を介してそのクラスのフィールドを編集する必要がありますが、そのクラスBeanEditorの背後にあるロジックでは、nulltrue、およびfalseBooleanの3 つの状態を持つことができるという事実が許可され、使用されます。

ただし、Tapestry はtrueまたはfalseの 2 つのオプションしかないチェックボックスを提供します。

そのため、オンラインの人々は、タイプ プロパティを 3 方向ロジックを表すタイプBooleanプロパティに変換することを提案しています。BooleanExtendedEnum

クラスを変更することはできないFooため、 の coercer を作成する必要がありますBoolean <=> BooleanExtendedEnum

BeanEditorで次のような簡単なことをしたとしましょうtml:

...そして次のSelectModelようなものを提供しました:

Tapestry は 3 つのオプションを含むドロップダウン リストを作成します

  • Undefined
  • True
  • False

ただし、表示された値を強制する実際のブール値は次のようになります。

  • Undefined->
  • True->
  • False->

クラスを変更したり、型フィールドが型フィールドに置き換えられた別のクラスにラップしたり、他の「ハッキー」ソリューションを使用したりしないという制限付きで、目的の効果 ( Undefined-> null ) をどのように達成できますか?BooleanBooleanExtendedEnum

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

r - asでRのクラスデータ型を強制する

vector, matrix, list, data.frameR にはいくつかの基本データ型 ( ) があり、R パッケージには S3 クラスまたは S4 クラス ( pppowin、およびその他多数) と呼ばれるいくつかの高度な型があることを理解していますspatialPointsDataFrame。R パッケージの関数の一部は、引数でのみ機能します。特殊タイプの。

R の異なるクラスとデータ型の間の変換について説明が必要です。

時々、次のようなコードを使用できます。

しかし、それ以外の場合は、次のようなコードを使用する必要があります:

asどのオブジェクトにどの構文を使用すればよいかを知るにはどうすればよいですか? または、構文は次のとおりです:as.foo(originalObject)常に同等ですas(originalObject, "foo")(ここで foo は、引数がクラスである必要がある関数で使用できるように、オブジェクトを変換したいクラスを表しますfoo)

R で class を使用してパッケージを使用するとしますfoovそして、クラスに属する変数bar(つまりclass(v)is bar) があります。機能が動作するかどうかはどうすればわかりas(v,"foo")ますか?

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

c# - C# での数値型の演算子のオーバーロード

BigNum本当に拡張可能な BCD と呼ばれる数値型を作成しています。その過程で、通常の数値演算子のほとんど/すべてをオーバーロードしています。私の主な質問は、組み込みの数値型 (long、ulong、int、uint、short、ushort、byte、sbyte、float、double、decimal) ごとに各演算子をオーバーロードする必要がありますか、それとも単純にオーバーロードできますか? double/decimal であり、システムが舞台裏で他の型を強制しますか?

編集:システムを強制的に2倍にする(実際にこれが実行可能である場合)ことで、整数で精度が維持されるかどうかも疑問です。

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

ruby - カスタム クラスでの Ruby の暗黙的な型変換

私は自分のクラスを持っています

これは基本的に変更可能な数値として機能します (たとえば、1 を関数に渡し、その関数で変更し、呼び出された場所から結果を読み取ることができます)。これを使用して、同じアプリケーションで wxRuby と gosu を使用する際の煩わしさを軽減しています。

のように言えるようになりたいArray#[Mutnum][1,2,3,4][Mutnum.new(3)]という結果になるはず4です。

Mutnum を配列インデックス\editとして使用できるようにするには、他にどのような関数を Mutnum editに追加する必要がありますか? と言えると思いますが、さらにデバッグを行う必要があります。[1,2,3,4][Mutnum.new(3).to_i]

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

perl - Path::Class::File または ::Dir & Moose の初期化と強制

現在持っている:

動作していますので、

pathstr2 つの属性でpathはなく 1 つだけになる解決策を探して、次のように強制するpath必要があります。Str

  • Path::Class::Dir (Strディレクトリの場合)
  • Path::Class::File (その他の場合)

何かのようなもの:

編集され、質問が拡張されました-「何が求められているのか不明」な票が集まったためです。今それがより明確であることを願っています。

記録のために、池上の作業バージョン:

私のテストプログラム

結果:

:)

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

c++ - コピーではなく移動のために呼び出された変換コンストラクター

このコードを使用:

このテストコードで:

この出力を生成します:

同じ型を使用する場合は、変換コンストラクターの代わりに、既定のコピー コンストラクターと移動コンストラクターが使用されます。

しかし、クラスにデフォルトのコピーコンストラクターを追加すると:

次の出力が生成されます。

同じ型でも移動変換コンストラクタが呼び出されるのはなぜですか?

コードの重複を避けるために、コピーと変換コンストラクターを統合する方法はありますか?

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

r - Rで文字を数値に強制する

私はRの初心者で、「12.5」のような文字列をas.numeric()関数を使用して数値に強制できることを学びました。これにより、次の結果が得られます。

しかし、フォローしようとすると、結果に小数部分が含まれていません。

結果に小数部分を保持する方法はありますか...

前もって感謝します...