問題タブ [equals-operator]

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

c# - 実際の型の代わりにインターフェイスを使用する場合、演算子 == をどのようにオーバーライドしますか?

次のようなコードがあります。

変数がインターフェイス IMyClass のときに呼び出されるように、演算子 == をどのように実装すればよいですか?

0 投票する
5 に答える
3185 参照

c# - オーバーライドが呼び出されるように、基本クラスの == 演算子をオーバーライドするにはどうすればよいですか

以下のようなコードで

派生演算子 (TaskA.==) が呼び出されることを確認しようとしています。

ここでテクニックを試すと、コンパイル エラーが発生します。

演算子が静的でない場合は、基本クラスの演算子をオーバーライドできるため、正しく機能させることができると思います。それは可能ですか?

それを取得したら、基本プロパティをどのように比較しますか (タスクタイプ [(Task)t1 == (Task)t2] へのキャストは機能しないと思います)?

0 投票する
7 に答える
196075 参照

java - Java:整数はvs.==に等しい

Java 1.5以降、多くの状況でIntegerほとんど交換できます。int

しかし、コードに潜在的な欠陥があり、少し驚いていました。

次のコード:

値が等しい場合、どのような状況であるかはわかりませんが、誤って設定の不一致が発生しているように見えました。Eclipseにブレークポイントを設定し、Integer値が両方とも137であることを確認し、ブール式を調べたところ、falseと表示されましたが、ステップオーバーすると、不一致がtrueに設定されていました。

条件を次のように変更します。

問題を修正しました。

なぜこれが起こったのか、誰かが光を当てることができますか?これまでのところ、自分のPC上のローカルホストでの動作のみを確認しました。この特定のケースでは、コードは約20回の比較を正常に通過しましたが、2回で失敗しました。問題は一貫して再現可能でした。

これが一般的な問題である場合は、他の環境(開発とテスト)でエラーが発生しているはずですが、これまでのところ、このコードスニペットを実行した何百ものテストの後で問題を報告した人は誰もいません。

2つの値==を比較するために使用することはまだ合法ではありませんか?Integer

以下のすべての細かい答えに加えて、次のstackoverflowリンクにはかなりの追加情報があります。実際には元の質問に答えていたはずですが、質問でオートボクシングについて言及しなかったため、選択した提案には表示されませんでした。

コンパイラ/JVMがオートボクシングを「正しく機能」させることができないのはなぜですか?

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

c# - 構造体で、Equalsを介してoperator ==を実装することは有効ですが、EqualsとGetHashCodeをオーバーライドすることはできませんか?

これは有効ですか?

(Object.Equalsはデフォルトで値型にリフレクションを使用するため、少し非効率的ですが、有効ですか?)

ReSharperがそれを強調し、私に警告するので、私は尋ねていMyStruct defines operator '==' or operator '!=' but does not provide 'Object.Equals(object o)' and 'Object.GetHashCode()'ます。

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

c# - Object.Equals は仮想ですが、Object.operator== は C# で使用しませんか?

よくわからない C# の奇妙な「非対称性」に見舞われました。次のコードを参照してください。

.NET の達人には明らかかもしれませんが、2 番目のアサートは失敗します。

Java では、== はここで Object.ReferenceEquals と呼ばれるものの同義語であることを学びました。C# では、Object.operator== は仮想である Object.Equals を使用すると考えていたため、System.String クラスでオーバーライドされています。

誰かが説明できますか? C# で 2 番目のアサートが失敗するのはなぜですか? 私の仮定のどれが悪いですか?

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

iphone - 'isEqual'または'=='を使用する必要がありますか?

私はここSOでいくつかの質問を見ましたisEqual:が、標準の代わりに関数を含む回答があります==

これまでのところ、私はを使用することを学んだだけ==なので、何を使用するのが良いのか、それぞれの長所と短所は何ですか?いつ使うべきですか?

ありがとうございました。

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

perl - 等号の場合のPerl

ファイルの最初の文字が等号 ( =) であるかどうかを検出し、行番号を表示する必要があります。陳述書はどのように書けばよいifですか?

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

c# - C# 値/オブジェクトはいつコピーされ、その参照はいつコピーされますか?

参照したいオブジェクトがコピーされている場所、またはコピーしたいオブジェクトが参照されている場所で、同じ問題が何度も発生します。これは、= 演算子を使用したときに発生します。

たとえば、オブジェクトを別のフォームに送信している場合、つまり:

...そしてフォーム内のオブジェクトを変更しても、元のオブジェクトは変更されません。オブジェクトがコピーされ、参照されていないかのようです。しかし、私がこれを行うとき:

...そして変更しanotherObjectmyObject同様に変更されます。

最も厄介なケースは、定義済みのオブジェクトの 1 つを複製しようとする場合です。

私がこれをするとき...

...obj1が参照され、すべての変更が変更されobj2ますobj1

などのシステム オブジェクトint, double, stringは、上記の clone メソッドの場合を除いて、常にコピーされているようです。

私の質問は、関数でのキーワードの使用を考慮せずにref、オブジェクトがいつコピーされ、いつオブジェクトが参照されるのかということです (つまり、関数に渡すとき、他のオブジェクトとして設定するとき) (上記の最初の 2 つの例)、3 番目の例のようにメンバー変数をコピーする場合など)?

0 投票する
5 に答える
476 参照

php - すべての PHP の等値比較は対称ですか?

は常に?$a == $bと同等です。$b == $a

JavaScript では、キャストが原因で、正しくない奇妙なケースがいくつかあると思います。

私はイデが正しいと思います。別の質問をします。

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

c# - linq で equals キーワードを使用する

重複の可能性:
ラムダ式: == vs. Equals()

やあ、

私は、変数やその他のものを比較するために Equals というキーワードをよく使用します。

しかし

データ領域が NULL の場合、実行時にエラーを返します

コードを使用する必要がありました

エラーを取り除くために。

これがエラーを発生させる理由はありますか?

ありがとう。