問題タブ [equality]

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

python - Python: この __eq__ を分かりやすくしてくれませんか?

もう一つ質問があります。

リスト「metainfo」を持つpythonクラスがあります。このリストには、クラスに含まれる可能性のある変数名が含まれています。との両方が同じ変数を持ち、それらの変数が同じ値を持つ__eq__場合に True を返すメソッドを作成しました。selfothermetainfo

これが私の実装です:

このコードを見やすくする方法について何か提案はありますか? 好きなだけ冷酷になってください。

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

c# - オブジェクトの同一性とオブジェクトの等価性と文字列クラスの例外に関する質問

これは Java と C# に関する質問です。Object Identity(==) は、2 つのオブジェクトが同じ場所を参照しているかどうかをテストし、Obejct Equality(Equals メソッド) は、2 つの異なる (同一ではない) オブジェクトが同じ値を持っているかどうかをテストします。しかし、文字列オブジェクトの場合、Object Identity とオブジェクトの等価性は同じです。たとえば、以下の if ステートメントの 2 つのブール式が true を返す場合

なんでそうなの??この設計上の決定の背後にある合理的な理由は何ですか?

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

php - 関数の戻り値を決定するために使用される if ステートメントの問題

関数で何を返すかを判断するために if ステートメントを使用していますが、思い通りに動作していないようです。

$catsは文字列であり(それが役立つ場合)、入力しても何も返されません。手動で返品を設定すると機能しますが、上記は何らかの理由で機能しません。

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

c# - 2 つの異なるが「等しい」インスタンスの .Equals が true を返すかどうかを判断する効果的な方法はありますか?

リフレクションを使用して、タイプの 2 つの異なるが「等しい」インスタンスで .Equals を呼び出した結果を判断しようとしています。

私の方法は次のようになります。

例として:

ただし、与えられた:

次のようにクラスに実装IEquatable<MyComplexType>すると、代わりに true になります。

リフレクションを使用して 2 つのインスタンスをインスタンス化し、すべてのプロパティを適切に型指定された既定値に設定することで、おそらくそれを実行できると思います。しかし、それは多くの作業と多くのオーバーヘッドであり、型に空のコンストラクターがないと問題が発生すると思います。

他のアイデアはありますか?


編集:

人々は私の意図に混乱しているようです。謝罪します。うまくいけば、これが明確になるでしょう:

2 つのオブジェクトをその能力を最大限に比較するメソッドがあります。単純に .Equals() を呼び出すだけでは十分ではありません。

  1. オブジェクトは値型になるか、適切な方法で IEquatable を実装し、真の応答が得られます。すごい!
  2. オブジェクトはすべて同じプロパティを持ち、「等しい」場合がありますが、それらは異なるインスタンスであるため、誤った応答が返されます。 この false が、オブジェクトが「等しくない」ためなのか、それともインスタンスが異なるだけなのかはわかりません

したがって、私の考えでは、比較方法は次のようにする必要があります。

  1. Equalsオブジェクト タイプを調べて、そのメソッドが同じパブリック プロパティを持つ 2 つの異なるインスタンスに対して true を返すかどうかを確認します。
  2. その場合は、メソッドを呼び出してEquals結果を返します
  3. そうでない場合は、すべてのプロパティとフィールドを見て、できる限り比較して、それらが等しいかどうかを判断してください

ここで、手順 3 にスキップできることは理解していますが、必要かどうかを事前に判断する方法があれば、時間を節約できます。


編集2:

いくつかの理由でこれを閉じます。

  1. 話せば話すほど、自分が求めたことは自分が本当にやりたかったことではないことに気付く
  2. やりたいと思っても、近道はありません。以前の編集については、とにかくステップ 3 にスキップする必要があります。

ご意見をお寄せいただきありがとうございます。

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

php - php は等しくなく、等しくない、等しくない

私はこれのバリエーションを見続けています:

等しくない !=

等しくない、等しい

!==

どちらが標準ですか、それとも意味が異なりますか?

後者は文字列の場合は値と名前もチェックすると思いますが、前者は値のみをチェックするだけかもしれません...

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

php - PHPの「eq」と「==」の違いは何ですか?

まず、Stack OverflowとGoogleの両方で、この質問に付けたタイトルのさまざまなバリエーションを検索してみました。解決策が見つかりませんでした。

私はPHPにかなり慣れていません。文字列比較の使用eqと使用の違いがわからないほど新しいです!==

私は通常==、PHPで文字列を比較するために使用します。私はそれで快適です。

eqしかし、文字列を比較するためにコードを使用しているのを見てきました。そして、ぼんやりと誰かが「ああ!私は==文字列を比較するために使用しました。eq'を使うべきだった。

==単純な文字列比較を使用しても大丈夫かどうかを知りたいだけですか?特殊なケース、大文字と小文字を区別するサブストリング、またはその他の派手なタイプのストリング比較については話していません。appleと同じかどうかを確認するだけappleです。

==十分ですか?または私は使用する必要がありますeq


私の間違い:(「よく研究されていない」質問をクリアしてくれてありがとう!それはPerlだったに違いない。HTMLに埋め込まれたコードを見て混乱し、PHPを埋め込む別の方法だと思った。ごめんなさい。

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

c# - デフォルト値と等しいかどうかをテストします

以下はコンパイルされません。

エラー:Operator '==' cannot be applied to operands of type 'T' and 'T'

value == null構造体の可能性があるため使用できませんT。かもしれないので
使えません。デフォルト値と等しいかどうかをテストする適切な方法は何ですか?value.Equals(default(T))valuenull

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

java - 基本的なJavaの質問:文字列の同等性

上記のプログラムは「true」を出力します。どちらも2つの異なる識別子/オブジェクトであり、出力はどのように「真」ですか?

私の理解では、JVMはオブジェクトごとに異なる参照を作成します。そうであれば、出力はどのように真になりますか?

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

ruby - Rubyで平等を実装する正しい方法は何ですか?

単純な構造体のようなクラスの場合:

等式を正しく実装し=====eql?、 などが機能することを保証し、クラスのインスタンスがセットやハッシュなどで適切に再生されるようにするための正しい方法は何ですか?

編集

また、クラスの外に公開されていない状態に基づいて比較したい場合、等値を実装する良い方法は何ですか? 例えば:

ここでは、平等メソッドで @age を考慮したいと考えていますが、Lady は自分の年齢をクライアントに公開していません。この状況で instance_variable_get を使用する必要がありますか?