問題タブ [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.
c++ - 関数テンプレートの T* 引数として渡すときに、演算子 T* を使用してテンプレート クラスを強制する
次のような関数テンプレートがあるとします。
次に、別の.h
ファイルに、次のテンプレート クラスFoo
があります。
今、私はそれらが異なる T であることを理解しています。しかし、スタックに変数がある場合、それを任意の種類のポインターFoo<Bar> f
に強制する唯一の方法は、を呼び出すことです。それでも、 call の場合、GCC は、 operator を自動的に使用して強制し、関数テンプレートをasで特殊化する代わりに、取ることができないと文句を言います。operator T*()
doStuff(f)
doStuff
Foo<Bar>
T*()
Bar*
Bar
T
これを 2 つのテンプレートで機能させるためにできることはありますか? または、テンプレート関数の引数が実際のポインター型である必要があるか、強制演算子を持つテンプレート クラスを非テンプレート関数に渡す必要がありますか?
javascript - JavaScript は ++ 演算子をどのように扱いますか?
JavaScript は、オブジェクトに対してファンキーな自動変換を行います。
印刷されます:
これは、引数のいずれかがオブジェクト/文字列である場合、+ はすべての引数を文字列に変換してから連結しようとするためです。すべての引数が数値の場合は、それらを合計します。* および単項 + toString を使用してオブジェクトを数値に変換します (ここには示されていませんが、valueOf も同様です)。
JavaScript は ++ 演算子に対して何をしますか?
groovy - groovy でマップ強制を使用して、パラメーターを持つコンストラクターでクラスをモックできますか?
テスト中の Java サンプル クラス
グルーヴィーなテストクラス
最初の 2 つのテストは正常にコンパイルおよび実行されます。後者のテストは、例外のため実行されません。
上記の 3 番目のクラスの場合、クラスをモックするために groovy マップ強制を引き続き使用できますか? もしそうなら、私は何を間違っていますか?
apache-flex - CFC と Flex の間でネストされたクラス強制が失敗する
A と B の 2 つの AS3 クラスがあります。クラス A には、クラス B の複数のインスタンスを保持する ArrayCollection が含まれています。
ColdFusion では、同じ名前の変数を同じ順序で並べた CFC と、各変数の cfproperty タグを使用しています。
AS3 クラスは両方とも、RemoteClass メタデータを使用して、対応する CFC に関連付けます。
問題は、A.cfc が CF から戻ってきて A.as インスタンスに適切にデータを入力する一方で、ネストされた B.as インスタンスにデータを入力できないことです。代わりに、次のエラーが表示されます。
ネストされた B インスタンスのコレクションを除いて、A インスタンスが正常に機能するのはなぜですか?
flash - Flash AS3:このエラーの取得:未定義のプロパティへのアクセス-基本的なスコープのヘルプが必要です:(
1フレームのすべてのコードのAS2スタイルにまだ慣れています。クラスファイルでAS3をコーディングしようとしていますが、基本的なパッケージ設定に問題があります。スコープの問題は、AS3を学ぼうとして私を殺しています。以下は私のパッケージコードです。他のクラスファイルはありません。単純なトレースを返そうとしているだけです。
以下のコードを実行した後に発生するエラー:1120:未定義のプロパティtcへのアクセス。
メインクラス
サブクラス
python - Pythonでのキャストと強制の違いは何ですか?
Pythonのドキュメントとメーリングリストでは、値が「キャスト」されることもあれば、「強制」されることもあります。
c++ - クラスのないC++ユーザー定義の変換演算子?
C ++では、クラスメンバーではない変換演算子を定義することは可能ですか?私は通常の演算子(+など)に対してそれを行う方法を知っていますが、変換演算子については知りません。
これが私のユースケースです。私はCライブラリを使用して、を渡しますPA_Unichar *
。ライブラリは、PA_Unicharを16ビット整数として定義します。これは実際にはUTF-16でコード化された文字列です。std::string
UTF-8でコード化されたものに変換したいと思います。私はすべての変換コードを準備して機能させていますが、次のように書くことができる構文糖衣が欠けているだけです。
(通常、一時変数なしで1行になります)。
また注目に値する:
私はそれ
std::string
がからの暗黙の変換を定義していないことを知っています、char*
そして私はその理由を知っています。同じ理由がここでも当てはまるかもしれませんが、それは重要ではありません。からの正しい変換演算子を定義するのサブクラス
ustring
があります。それは機能しますが、これは代わりに変数を使用することを意味し、他のライブラリでそれらの文字列を使用する場合に変換する必要があります。ですから、それはあまり役に立ちません。std::string
PA_Unichar*
ustring
std::string
std::string
代入演算子はクラスメンバーでなければならないため、代入演算子の使用は機能しません。
それで、あなたが制御していない2つの型(私の場合はPA_Unichar*
とstd::string
)の間に暗黙の変換演算子を定義することは可能ですか?それはクラス型であるかもしれませんし、そうでないかもしれませんか?
そうでない場合、回避策は何でしょうか?
map - Clojureで文字のLazySeqを文字列に変換するにはどうすればよいですか?
のようなjava.lang.CharacterのLazySeqがあるとしましょう
これを文字列に変換するにはどうすればよいですか? 私は明らかなことを試しました
しかし、それは投げます
String コンストラクターがLazySeqの代わりにプリミティブchar[]を期待しているためだと思います。それで、私は次のようなことを試しました
しかし、それは同じ例外をスローします。現在の問題は、into-arrayがプリミティブchar[ ] ではなくjava.lang.Character[]を返すことです。私は実際にこのような文字シーケンスを生成するので、これはイライラします
基本的に、ASCII 文字を表す int のシーケンスがあります。65 = A など。プリミティブ型強制関数(char x)を明示的に使用していることがわかります。
これが意味することは、マップ関数はプリミティブcharを返しているが、Clojureマップ関数は全体としてjava.lang.Characterオブジェクトを返しているということです。
python - Python:数値文字列を識別しますか?
私はいくつかのアプローチを試しましたが、正確さではなく、パフォーマンスのみに関心があります。正規表現ベースの実装は、型強制を使用する実装よりも約 3 ~ 4 倍遅いことに気付きました。これを行う別のより効率的な方法はありますか?
ありがとう!