問題タブ [operator-keyword]
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# - C#リストへの暗黙的なキャストランタイムエラーを返します
内部リストを使用する次のようなクラスがあります。
MyList<object>
を受け取る関数に渡そうとするとList<object>
、InvalidCastExceptionが発生します。なんで?
c++ - C++でプリミティブ演算子関数を明示的に呼び出す
一方、これは機能します-
- プリミティブ型(intなど)のoperator +(およびその他の演算子)を直接呼び出すことも可能ですか?
- はいの場合、どのように?
- そうでない場合、これが実行可能ではないことを明確にするC ++参照の言い回しはありますか?
php - PHPで!==と===はどういう意味ですか?
重複の可能性:
等値 (== 二重等号) と同一性 (=== 三重等号) の比較演算子はどのように異なりますか?
参考 - この記号はPHPで何を意味しますか?
php が != および !== と等しくない
このコード スニペットの!==
and演算子は何ですか?===
prolog - プロローグ GNU - Univ オペレーター? その説明
だから大学のオペレーター。よくわかりません。
たとえば、次のようになります。
これは何をしているのですか?これは、別の述語が真かどうかを確認します。「..」の意味がわかりません。
univ 演算子なしでこれをどのように書き換えますか?
c# - C# 型を使用して測定単位を表現する
double を構造体にラップすることで、私が測定単位系と呼ぶものを取得しようとしています。私は Meter、Second、Degree などの C# 構造を持っています。私の最初のアイデアは、コンパイラがすべてをインライン化した後、double を使用した場合と同じパフォーマンスが得られるというものでした。
私の明示的および暗黙的な演算子はシンプルで単純であり、コンパイラは実際にそれらをインライン化しますが、Meter と Second を使用したコードは double を使用した同じコードよりも 10 倍遅くなります。
私の質問は次のとおりです。とにかくすべてをインライン化する場合、C# コンパイラが Second を使用するコードを double を使用するコードと同じくらい最適化できないのはなぜですか?
2 番目は次のように定義されます。
アップデート:
構造体がここに収まるかどうかは尋ねませんでした。します。
コードがインライン化されるかどうかは尋ねませんでした。JIT はそれをインライン化します。
実行時に出力されるアセンブリ操作を確認しました。次のようなコードでは異なります。
そしてこのように:
逆アセンブルには call 命令がなかったので、操作は実際にはインライン化されていました。それでも、違いは重要です。パフォーマンス テストでは、Second を使用すると、double を使用するよりも 10 倍遅くなることが示されています。
私の質問は (注意!): JIT で生成された IA64 コードが上記のケースと異なるのはなぜですか? 構造体を倍速で実行するにはどうすればよいですか? double と Second の間に理論的な違いはないようですが、私が見た違いの深い理由は何ですか?
c++ - メンバー関数内のクラスの列挙型メンバーに対するオーバーロード演算子 <<
クラスのメンバーである列挙型の << 演算子をオーバーロードするにはどうすればよいですか。具体的には、以下のコードがあります。
「1」ではなく「b」を印刷するように印刷機能を取得するにはどうすればよいですか?
c++ - C++ オーバーロードされた演算子の解決
g++ 4.4.5
クラス std::ofstream を拡張していくつかの機能を追加するクラスがあります。
これにより、基本的に個々のビットをブール値として書き込むことができ、親の << メソッドを使用して 8 つの各セットを書き込むことができます。基本メソッドを呼び出していたため、ここではこの呼び出し構文を使用する必要がありましたが、このクラスを使用する実際のメイン メソッドでは、次の行を呼び出そうとしました。
ofstream および unsigned char に対して既に定義されている << メソッドを呼び出したいのですが、ofstream (char、unsigned char、signed char) および独自の bool メソッドに対して既に定義されているすべての char 関連の候補をリストする、長くあいまいなオーバーロード エラーが表示されます。 、明示的にcharにキャストしましたが。しかし、私はそれを次のように動作させることができました:
これは、g++ が暗黙のキャストを行う方法と関係があるに違いありません (私の推測では、最初のケースでユーザー定義のキャストの後に、もう 1 つの可能なキャストがあり、関数呼び出し構文が回避することを曖昧にしています)。なぜこれが起こっているのか、またはエラーを回避するより良い構文があるのか を正確に知っている人はいますか?
c++ - 演算子への c++ ポインタ
クラスの演算子を指すポインタをC ++(またはc ++ 0x)で書きたいと思います.AまたはBと言います.それを行う方法はありますか?
もちろん、次のような構文があります
しかし、それはこの問題を解決しません。基本クラスを指定せずに、一般的なポインターを作成したい-「演算子関数」のポインターのみ
javascript - Javascript の二重ドット演算子 (..) とは何ですか?
私は Spidermonkey のパーサー API を使っていくつかの作業を行っています。ドキュメントは、二項演算子があることを示してい..
ます。誰もがこれが/何をしているのか知っていますか? ぜひ知りたいです。私は前にそれを見たことがありません。推測を強要されるとすれば、それは E4X に関するものだと言わざるを得ませんが、それは単に、私が E4X について何も知らないからです。
c# - == 演算子をオーバーライドしています。null と比較する方法
重複の可能性:
無限再帰を使用せずに「==」演算子のオーバーロードで null をチェックするにはどうすればよいですか?
これにはおそらく簡単な答えがあります...しかし、それは私を逃しているようです. 簡単な例を次に示します。
この特定のアプリケーションでは、社会保障番号が一致し、両方の名前が一致する場合、同じ「人」を参照していると言えます。
.Equals
一貫性を保つために、メソッドを使用しないチームの開発者のために、== および != 演算子もオーバーライドします。
上品でダンディですね。
しかし、Person オブジェクトが の場合はどうなるnull
でしょうか?
あなたは書くことができません:
これにより == 演算子のオーバーライドが実行されるため、コードは次の場合に失敗します。
null インスタンスでメソッドを呼び出すことはできないためです。
一方、== オーバーライド内でこの条件を明示的にチェックすることはできません。これは、無限再帰 (およびスタック オーバーフロー [ドットコム]) が発生するためです。
では、値の等価性のために == および != 演算子をオーバーライドし、それでも null オブジェクトを考慮するにはどうすればよいでしょうか?
答えが痛々しいほど単純ではないことを願っています。:-)