問題タブ [object-comparison]
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.
python - Pythonピクルス:ピクルスオブジェクトはソースオブジェクトと等しくありません
これは予想される動作だと思いますが、私が行った調査が空白になっているため、理由を確認して調べたいと思います。
データを取得し、カスタムクラスの新しいインスタンスを作成して、それをリストに追加する関数があります。クラスには変数が含まれているだけです。
次に、プロトコル2をバイナリとして使用して、そのリストをファイルにピクルスします。後でスクリプトを再実行し、ソースからデータを再プルします。テスト用に、カスタムクラスインスタンスを含む新しいリストを作成し、データをソースに保持します。同じデータ。
ピクルスファイルをリロードします
今私がするとき:
これは常に戻ってきFalse
ます。リストを印刷したり、構造を調べたりすると、まったく同じように見える理由がわかりません。
どんなアイデアも素晴らしいでしょう、これは私が分類する必要がある私の最後の少しです。
php - in_arrayは、オブジェクトがオブジェクトの配列にあるかどうかをどのようにチェックしますか?
in_array()
すべての属性が同じであることを確認するオブジェクト比較を行いますか?もしそうなら$obj1 === $obj2
、代わりにポインタ比較を行うだけでしょうか?
私はORMを使用しているので、$obj1->getId()
オブジェクトの比較を行う場合は、オブジェクトがすでに配列にあるかどうかをテストするオブジェクトをループします。そうでない場合は、in_array
はるかに簡潔です。
ruby - Rubyの「==」は常に値の平等ですか?
重複している場合は申し訳ありません(見つかりませんでした)
==
これは、Rubyの演算子が常に等価比較を実行することを確認するためだけのものです。つまり
Javaのように、メモリ内の同じオブジェクトを指しているかどうかではなく、aの値をbの値と比較します(後者の場合、Rubyではa.object_id == b.object_id
)を使用する必要があります。
したがって、結果として、Rubyでは文字列値を==と比較するのが安全です(Javaでは安全ではありませんが)
ありがとう
編集:
問題は、Rubyオブジェクトのデフォルトの==動作にあります。これは、a == bが参照の内容ではなく、参照自体を比較すると仮定して、Java-C-C++プログラマーを誤解させる可能性があるためです。
とにかく、文字列を使用してこのコードをチェックアウトできます
編集2。
したがって、Rubyでは、比較
aとbの値をチェックします
しかし、割り当て
値をコピーしませんが、aとbが同じオブジェクトを指すようにします!
前のコードを続行する
javascript - 深い比較とクローン作成にJSON.stringifyを使用しても問題ありませんか?
深い比較とJSONシリアル化可能なオブジェクトのコピーのためにいくつかの実装を試みた後、私は多くの場合、最速であることに気づきました。
でも、これは浮気しているような気がします。私が将来私を悩ませるいくつかの問題を見つけるように。それらを使用しても大丈夫ですか?
c# - リフレクション - オブジェクトの比較とデフォルト値
C# で 2 つの複雑なオブジェクトを比較し、2 つの違いを含む Dictionary を作成しようとしています。
私がそのようなクラスを持っている場合:
したがって、1つのインスタンス:
そして別:
これらの違いを得るために、私はこれを含むことをしています:
興味深いのはこの行です
上記のオブジェクトの例を使用すると、この行はSomeOtherId
(bools & DateTimes & whathaveyou についても同じ話) のデフォルト値 0 を提供します。
私が探しているのはnewProps
、オブジェクトで明示的に指定されたプロパティのみを含める方法です。したがって、上記の例ではId
、IsWhatever
. 私はBindingFlags
無駄に遊んだ。
これは可能ですか?それを行うためのよりクリーンな/より良い方法、または問題を解決するためのツールはありますか?
ありがとう。
javascript - Jasmine でオブジェクトの等価性をチェックする
Jasmineには組み込みのマッチャーtoBe
とtoEqual
. 次のようなオブジェクトがある場合:
と sum の結果を比較しようとするnew Money(200, "USD")
と、これらの組み込みマッチャーは期待どおりに機能しません。equals
カスタムメソッドとカスタムマッチャーに基づいて回避策を実装することができましたが、うまくいくようです。
Jasmine でオブジェクトを比較する標準的な方法は何ですか?
java - Java 整数プール。なんで?
Java で -128 から 127 までの整数を定義すると、新しいオブジェクトを作成する代わりに、既に作成されているオブジェクトが返されることをどこでも読んだことがあります。
初心者のプログラマーが整数オブジェクトを と比較して同じ数であるかどうかを確認できるようにする以外に、これを行う意味はありませんが、これは悪い==
ことだと思います。==
2 つの「異なる」オブジェクトの内容を==
.
これが行われる理由について他に何か理由はありますか?それとも、JavaScript のオプションのセミコロンのように (私の観点から) 言語を設計するときの悪い決定ですか?
編集: ここで、彼らが動作を説明していることがわかります:整数定数プールの動作が 127 で変わるのはなぜですか?
なぜこの動作が発生するのかではなく、なぜこの動作をするように設計したのかを尋ねています。
java - equals メソッドはオブジェクトで機能しますか? もしそうなら、どのように?
私は動物園というプログラムを持っており、動物園には爬虫類である動物の枝分かれしたサブグループがあります。equals メソッドを実行すると、メイン プログラムがコンパイルされて実行されます。特にintやStringではなくオブジェクトを比較している場合、Javaはequalsメソッドの使用をどのように知っているのでしょうか。
java - Java オブジェクトの比較: トランプ ゲームの「compareTo()」メソッドの実装
文字列比較メソッド「compareTo」を使ったメソッドを作っています。ただし、正確にどのように機能するかについていくつか質問があります。
これは、compareTo メソッドのコードの一部です。**言及できるように、このコード セグメントについてかなりの量のオンライン ヘルプを受け取りました。私に説明されている間、それは理にかなっています。したがって、私にとって意味があれば、このコードのセグメントを別の形式で書き直すことができるはずです。しかし、私はそうすることができないことに気づきました。したがって、私はアドバイスと助けを求めています。
関数
一般的に私を失望させるものです。compareTo メソッドは正確に何をしているのですか?
プレーヤーのターンでは、プレイ中の 2 枚のカードを比較します -> プログラムのロジックに従います。
compareTo メソッドを使用せずにカードを比較することはできますか?
クラスコンストラクターをセットアップする方法は次のとおりです。
もう一度、ファイナライズします。compareTo メソッドの仕組みを理解するのに問題があります。そして、プレイ中のプレイヤーカードを比較する別の方法の提案があれば.
カードリストは2つの別々のクラスから来ています - >スーツとランク
/** * ** * ** * ** * ** * ** * ** * ** * ** * Card クラス外のオブジェクトの初期化 * @param rCard * @param sCard * * ** * ** * ** * ** * ** * ** * ** * ** * */ public Card(Rank rCard, Suit sCard) { this.rCard = rCard; this.sCard = sCard; }
javascript - JavaScript 変数を JSON データと比較できません
localstorageの JSON データに文字列として格納されたテーブルがあります。ここに格納されているフィールドの 1 つを別の JavaScript 変数と比較したいと考えています。
これが私が試したことです:
しかし、それは機能していません。トラブルシューティングを行った結果、問題は比較にあると思います(goal == goalsObj.goals[i].goal)
。
これは、localStorage の「ゴール」内に実際に格納された値です。
内部に格納されているオブジェクトの配列です。
これらの「diff」、「duedate」はすべて、ユーザーから取得した HTML フォーム データです。
どうしたの?私は何をすべきか?