問題タブ [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.
java - Tapestry の双方向ブール強制を三方向強制で上書きするにはどうすればよいですか?
この場合を考えてみましょう。
いかなる方法でも変更または拡張できないクラスがあります。
を介してそのクラスのフィールドを編集する必要がありますが、そのクラスBeanEditor
の背後にあるロジックでは、null、true、および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 ) をどのように達成できますか?Boolean
BooleanExtendedEnum
r - asでRのクラスデータ型を強制する
vector, matrix, list, data.frame
R にはいくつかの基本データ型 ( ) があり、R パッケージには S3 クラスまたは S4 クラス ( ppp
、owin
、およびその他多数) と呼ばれるいくつかの高度な型があることを理解していますspatialPointsDataFrame
。R パッケージの関数の一部は、引数でのみ機能します。特殊タイプの。
R の異なるクラスとデータ型の間の変換について説明が必要です。
時々、次のようなコードを使用できます。
しかし、それ以外の場合は、次のようなコードを使用する必要があります:
as
どのオブジェクトにどの構文を使用すればよいかを知るにはどうすればよいですか? または、構文は次のとおりです:as.foo(originalObject)
常に同等ですas(originalObject, "foo")
(ここで foo は、引数がクラスである必要がある関数で使用できるように、オブジェクトを変換したいクラスを表しますfoo
)
R で class を使用してパッケージを使用するとしますfoo
。v
そして、クラスに属する変数bar
(つまりclass(v)
is bar
) があります。機能が動作するかどうかはどうすればわかりas(v,"foo")
ますか?
c# - C# での数値型の演算子のオーバーロード
BigNum
本当に拡張可能な BCD と呼ばれる数値型を作成しています。その過程で、通常の数値演算子のほとんど/すべてをオーバーロードしています。私の主な質問は、組み込みの数値型 (long、ulong、int、uint、short、ushort、byte、sbyte、float、double、decimal) ごとに各演算子をオーバーロードする必要がありますか、それとも単純にオーバーロードできますか? double/decimal であり、システムが舞台裏で他の型を強制しますか?
編集:システムを強制的に2倍にする(実際にこれが実行可能である場合)ことで、整数で精度が維持されるかどうかも疑問です。
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]
perl - Path::Class::File または ::Dir & Moose の初期化と強制
現在持っている:
動作していますので、
pathstr
2 つの属性でpath
はなく 1 つだけになる解決策を探して、次のように強制するpath
必要があります。Str
- Path::Class::Dir (
Str
ディレクトリの場合) - Path::Class::File (その他の場合)
何かのようなもの:
編集され、質問が拡張されました-「何が求められているのか不明」な票が集まったためです。今それがより明確であることを願っています。
記録のために、池上の作業バージョン:
私のテストプログラム
結果:
:)
c++ - コピーではなく移動のために呼び出された変換コンストラクター
このコードを使用:
このテストコードで:
この出力を生成します:
同じ型を使用する場合は、変換コンストラクターの代わりに、既定のコピー コンストラクターと移動コンストラクターが使用されます。
しかし、クラスにデフォルトのコピーコンストラクターを追加すると:
次の出力が生成されます。
同じ型でも移動変換コンストラクタが呼び出されるのはなぜですか?
コードの重複を避けるために、コピーと変換コンストラクターを統合する方法はありますか?
r - Rで文字を数値に強制する
私はRの初心者で、「12.5」のような文字列をas.numeric()
関数を使用して数値に強制できることを学びました。これにより、次の結果が得られます。
しかし、フォローしようとすると、結果に小数部分が含まれていません。
結果に小数部分を保持する方法はありますか...
前もって感謝します...