問題タブ [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 投票する
6 に答える
17813 参照

c# - .NETディクショナリは同じキーと値を持っていますが、「等しくない」

このテストは失敗します:

私はDictionary作品がどのように機能するかについて何か誤解していますか?

.equals()参照の同等性をチェックしようとせずに、Javaに相当するものを探しています。

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

.net - CLR JITの最適化は因果関係に違反しますか?

私は同僚に有益な例を書いて、フロートの平等をテストすることがしばしば悪い考えである理由を彼に示しました。私が行った例は、.1を10回追加し、1.0(入門的な数値クラスで示したもの)と比較することでした。2つの結果が等しいコード+出力)ことに驚いた。

いくつかの調査では、この結果は信頼できないことが示されました(フロートの等式のように)。私が最も驚いたのは、他のコードのに​​コードを追加すると、計算結果(コード+出力)が変わる可能性があることです。この例には、まったく同じコードとILがあり、C#がもう1行追加されていることに注意してください。

私はフロートに平等を使用することになっていないので、これについてあまり気にする必要はないことを知っていますが、これを示したすべての人と同様に、それは非常に驚くべきことでした。計算を実行した後に何かを行うと、前の計算の値が変わりますか?それは、人々が通常頭に置いている計算モデルではないと思います。

私は完全に困惑しているわけではありません。計算結果を変更する「等しい」場合に何らかの最適化が発生していると想定するのは安全のようです(デバッグモードでビルドすると「等しい」場合が防止されます)。明らかに、CLRが後でフロートをボックス化する必要があると判断した場合、最適化は中止されます。

少し検索しましたが、この動作の理由を見つけることができませんでした。誰かが私を手がかりにできますか?

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

ruby - Ruby では、なぜ nil と等しい ("Date.new == nil") が nil を返すのですか?

今日いくつかの rspec を書いているときに、Date (および Time) インスタンスを nil と比較すると、予期しない動作に遭遇しました。これは、生のルビーを使用したサンプルです (Rails やその他のライブラリは使用していません)。

これまでのところ、とても良いですよね?

Date は独自の === を実装しており、うまく動作します:

なぜこれが起こるのか、またはなぜこれが望ましい動作なのかについての説明はありますか? == は Comparable.== から実装されているようですが、それに関するドキュメントには nil が返されることは示されていません。これに対する設計上の決定は何ですか?

アップデート!これは 1.9.2 では当てはまりません:

0 投票する
6 に答える
909 参照

c++ - 等しいかどうかを比較するとき、 `==`を使用しても大丈夫ですか?

同等性を比較する場合、使用しても大丈夫==ですか?

例えば:

同等性をチェックする場合は、次を使用する必要があります。

浮動小数点数を使用した場合、状況は変わりますか?

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

c++ - RTTI を使用しない型の等価性のテスト

BCは から派生していますA。RTTI を使用せずに、から派生したクラスの 2 つのインスタンスAが同じクラスのインスタンスであるかどうか、つまりA* fooA* bar両方がインスタンスを指しているかどうかをテストできるようにしたいと考えています。B私の現在の解決策は次のようなものです:

このメソッドを使用すると、operator==簡単にテストできますfirst.code() == second.code()。すべての派生クラスがこのイディオムを繰り返す必要がないようにidentity、派生クラスからリテラルを削除し、コードが によって自動的に検出されるようにしたいと考えています。A繰り返しますが、私は RTTI を使用しないことを強く望んでいます。これを行う方法はありますか?

注:最近の質問[1][2]を見ましたが、これは重複していません。これらの投稿者は、派生クラスの内容をテストしたいと考えています。私は単に身元をテストしたいだけです。

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

c# - NHibernateの同等性:多くの「同等の」.NETオブジェクトから1つの行のみが永続化されるようにするにはどうすればよいですか?

NHibernateで次のテストに合格するにはどうすればよいですか?

これが私が望むように機能するには、エンティティクラスのEqualsとGetHashCodeを単純にオーバーライドするだけで十分だと思いました。明らかに、非常に些細な「ポイント」オブジェクトの場合、同じ座標に対して複数の行を永続化するのはばかげています。同一の座標を持つ2つのポイントオブジェクトがあり、それらをデータベースの1つの行にのみ保持する必要があります。

私のポイントクラスは次のようになります。

0 投票する
6 に答える
2998 参照

java - Java でのブール値テストが常に失敗するのはなぜですか?

タイヤ空気圧の 1 つが 35 未満または 45 を超えると、システムが「悪い膨張」を出力するように、ブール値のテストを作成しようとしています。

私のクラスでは、私が試したブール値を使用する必要があります。ただし、返されるブール値は常に true です。理由がわかりません。

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

c++ - Cでのchar[]の同等性を比較する

私には2つの変数があります:

これら2つが等しいかどうかを確認したい...使用charTime == bufが機能しない。

私は何を使うべきですか、そして誰かがなぜ使うこと==がうまくいかないのか説明できますか?

このアクションはCとC++で異なりますか?

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

null - nullフィールドのGetHashCode?

関数内のnullフィールドを処理するにはどうすればよいGetHashCodeですか?