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

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

c# - C#リストへの暗黙的なキャストランタイムエラーを返します

内部リストを使用する次のようなクラスがあります。

MyList<object>を受け取る関数に渡そうとするとList<object>、InvalidCastExceptionが発生します。なんで?

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

c++ - C++でプリミティブ演算子関数を明示的に呼び出す

一方、これは機能します-

  • プリミティブ型(intなど)のoperator +(およびその他の演算子)を直接呼び出すことも可能ですか?
  • はいの場合、どのように?
  • そうでない場合、これが実行可能ではないことを明確にするC ++参照の言い回しはありますか?
0 投票する
6 に答える
938 参照

php - PHPで!==と===はどういう意味ですか?

重複の可能性:
等値 (== 二重等号) と同一性 (=== 三重等号) の比較演算子はどのように異なりますか?
参考 - この記号はPHPで何を意味しますか?
php が != および !== と等しくない

このコード スニペットの!==and演算子は何ですか?===

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

prolog - プロローグ GNU - Univ オペレーター? その説明

だから大学のオペレーター。よくわかりません。

たとえば、次のようになります。

これは何をしているのですか?これは、別の述語が真かどうかを確認します。「..」の意味がわかりません。

univ 演算子なしでこれをどのように書き換えますか?

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

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 の間に理論的な違いはないようですが、私が見た違いの深い理由は何ですか?

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

c++ - メンバー関数内のクラスの列挙型メンバーに対するオーバーロード演算子 <<

クラスのメンバーである列挙型の << 演算子をオーバーロードするにはどうすればよいですか。具体的には、以下のコードがあります。

「1」ではなく「b」を印刷するように印刷機能を取得するにはどうすればよいですか?

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

c++ - C++ オーバーロードされた演算子の解決

g++ 4.4.5

クラス std::ofstream を拡張していくつかの機能を追加するクラスがあります。

これにより、基本的に個々のビットをブール値として書き込むことができ、親の << メソッドを使用して 8 つの各セットを書き込むことができます。基本メソッドを呼び出していたため、ここではこの呼び出し構文を使用する必要がありましたが、このクラスを使用する実際のメイン メソッドでは、次の行を呼び出そうとしました。

ofstream および unsigned char に対して既に定義されている << メソッドを呼び出したいのですが、ofstream (char、unsigned char、signed char) および独自の bool メソッドに対して既に定義されているすべての char 関連の候補をリストする、長くあいまいなオーバーロード エラーが表示されます。 、明示的にcharにキャストしましたが。しかし、私はそれを次のように動作させることができました:

これは、g++ が暗黙のキャストを行う方法と関係があるに違いありません (私の推測では、最初のケースでユーザー定義のキャストの後に、もう 1 つの可能なキャストがあり、関数呼び出し構文が回避することを曖昧にしています)。なぜこれが起こっているのか、またはエラーを回避するより良い構文があるのか​​ を正確に知っている人はいますか?

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

c++ - 演算子への c++ ポインタ

クラスの演算子を指すポインタをC ++(またはc ++ 0x)で書きたいと思います.AまたはBと言います.それを行う方法はありますか?

もちろん、次のような構文があります

しかし、それはこの問題を解決しません。基本クラスを指定せずに、一般的なポインターを作成したい-「演算子関数」のポインターのみ

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

javascript - Javascript の二重ドット演算子 (..) とは何ですか?

私は Spidermonkey のパーサー API を使っていくつかの作業を行っています。ドキュメントは、二項演算子があることを示してい..ます。誰もがこれが/何をしているのか知っていますか? ぜひ知りたいです。私は前にそれを見たことがありません。推測を強要されるとすれば、それは E4X に関するものだと言わざるを得ませんが、それは単に、私が E4X について何も知らないからです。

0 投票する
9 に答える
70983 参照

c# - == 演算子をオーバーライドしています。null と比較する方法

重複の可能性:
無限再帰を使用せずに「==」演算子のオーバーロードで null をチェックするにはどうすればよいですか?

これにはおそらく簡単な答えがあります...しかし、それは私を逃しているようです. 簡単な例を次に示します。

この特定のアプリケーションでは、社会保障番号が一致し、両方の名前が一致する場合、同じ「人」を参照していると言えます。

.Equals一貫性を保つために、メソッドを使用しないチームの開発者のために、== および != 演算子もオーバーライドします。

上品でダンディですね。

しかし、Person オブジェクトが の場合はどうなるnullでしょうか?

あなたは書くことができません:

これにより == 演算子のオーバーライドが実行されるため、コードは次の場合に失敗します。

null インスタンスでメソッドを呼び出すことはできないためです。

一方、== オーバーライド内でこの条件を明示的にチェックすることはできません。これは、無限再帰 (およびスタック オーバーフロー [ドットコム]) が発生するためです。

では、値の等価性のために == および != 演算子をオーバーライドし、それでも null オブジェクトを考慮するにはどうすればよいでしょうか?

答えが痛々しいほど単純ではないことを願っています。:-)