問題タブ [equals]
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.
ruby-on-rails - Ruby on Rails:「等号」記号はパラメータとして何を意味しますか?
私が使用してきたいくつかのオープン ソースには、関数宣言として以下の行があります。
def parse_query(クエリ=nil、オプション={}、モデル=nil)
「等号」記号はステートメントにどのような影響を与えますか? パラメータをオプションにするだけですか?
c# - 2つのデータ転送オブジェクトがC#で等しいプロパティを持っているかどうかをすばやく確認するにはどうすればよいですか?
私はこれらのデータ転送オブジェクトを持っています:
書きたくない
プロパティのみを持つ2つのオブジェクトが同じ値を持っているかどうかをテストするより速い方法はありますか(プロパティごとに1行のコードまたは1つの論理式を必要としないものですか?)
構造体への切り替えはオプションではありません。
java - 2つの文字列の==とのJava比較は誤りですか?
文字列部分はString[6]です:
しかし、私が比較するparts[0]
と"231"
:
上記の結果は誤りです、
私は混乱しているので、誰かが理由を教えてもらえますか?
c# - 複雑な等価性のために Object.GetHashCode() を実装するにはどうすればよいですか?
基本的に、私はこれまでのところ以下を持っています:
したがって、問題は次のとおりですGuid
。一意の識別子である必須ではないフィールドがあります。これが設定されていない場合は、2 つのオブジェクトが等しいかどうかを判断する試みとして、精度の低いメトリックに基づいて等しいかどうかを判断する必要があります。これはうまくいきますが、GetHashCode()
面倒になります...どうすればいいですか?単純な実装は次のようになります。
しかし、2 種類のハッシュが衝突する可能性はどのくらいでしょうか? 確かに、そうなるとは思いません1 in 2 ** 32
。これは悪い考えですか? もしそうなら、どうすればいいですか?
javascript - === vs ==、!== vs != などを JavaScript でいつ使用する必要がありますか?
===
vs==
と!==
vsはどう違い!=
ますか?
それぞれをいつ使用する必要がありますか?
java - "" == sが偽であるが、 "" .equals(s)が真である場合
編集 迅速な対応ありがとうございます。本当の質問が何であるかを見てください。今回は大胆にしました。
==と.equalsの違いは理解できます。だから、それは私の質問ではありません(私は実際にそのためのいくつかのコンテキストを追加しました)
空の文字列に対して以下の検証を実行しています。
以前は、dbから値をフェッチしたり、別のノードからオブジェクトを逆シリアル化したりしたときに、2つの文字列インスタンスが同じデータを含んでいたとしても、実際には異なるオブジェクト参照であったため、このテストは失敗しました。
したがって、これらの状況の修正は
私はそれで大丈夫です。それははっきりと理解されています。
今日、これはもう一度起こりましたが、今回のアプリケーションはネットワークをまったく使用しない非常に小さなスタンドアロンアプリケーションであるため、データベースから新しい文字列がフェッチされたり、別のノードから脱セライズされたりすることはありません。
したがって、問題は次のとおりです。
その他の状況:
と
ローカルスタンドアロンアプリケーションの場合?
新しいString()がコードで使用されていないことは間違いありません。
そして、文字列参照が ""になる唯一の方法は、次のようにコード内で直接 ""が割り当てられているためです(またはそれが私が考えたものです)。
どういうわけか(コードをもっと読んだ後、私は手がかりがあります)2つの異なる空の文字列オブジェクト参照が作成されました、私は方法を知りたいです
jjnguysの答えの行の詳細:
バイト!
編集:結論
私はその理由を見つけました。
jjnguyの提案の後、私はコードをさまざまな目で見ることができました。
有罪のメソッド:StringBuilder.toString()
新しいStringオブジェクトが割り当てられ、初期化されて、このオブジェクトによって現在表されている文字シーケンスが含まれます。
ドー!..。
謎が解けた。
このコードは、StringBuilderを使用して、増え続ける文字列を処理します。ある時点で誰かがしたことが判明しました:
と使用
ps最近、CodingHorrorを読みすぎましたか?または、なぜここに面白い動物の写真を追加する必要があると感じるのですか?
c# - Linq: 結合における == と equals の違いは何ですか?
equals
== 演算子を使用するのではなく、なぜ linq の結合にキーワードがあるのか、いつも疑問に思っていました。
それ以外の
[編集]質問を言い換え、例を修正しました。
sql - MYSQL の単一の等号
MYSQL が、より一般的な 2 つの等号ではなく、条件ステートメントで 1 つの等号を使用する理由を知りたいと思っていました。これには技術的/歴史的な理由がありますか? ありがとう。
.net - スペースが 32 ビットより大きい場合、GetHashCode 互換の Equals メソッドを実装する方法は?
.NET では、Equals(object) と GetHashCode() に互換性がある必要があります。ただし、次のことができない場合があります。
データ密度が 32 ビットを超え、GetHashCode が Int32 を返すため、次の 3 つの解決策があります (GetHashCode が正しく実装されていると仮定します)。
/li>正しくないとして破棄されるコードの重複を避けるGetHashCode() とは別に Equals を実装する
/li>より高い精度の GetHashCode64 を実装すると、オーバーライドされた GetHashCode (32 ビット) は (int)GetHashCode64() を返し、Equals は this.GetHashCode64() == other.GetHashCode64() を返します。
どれを実装しますか?
最初の解決策は不正確ですが、よりクリーンです。2 番目のオプションはきれいに見えますが、クラスのプロパティが増えると非常に複雑になります。3 番目のオプションは妥協です。