タグ付けされた質問 「equality」

等価とは、(1)アイテムが同じアイテム、変数、またはオブジェクトであるか、(2)アイテムが異なるアイテム、変数、またはオブジェクトであるが、同じ値である場合に存在する、2つ以上のアイテムまたは変数またはオブジェクト間の関係です。このタグは通常、プログラミング言語固有のタグだけでなく、データベースシステムなどの他のコンテキストタグとともに使用する必要があります。投稿には、同等性テストについて可能な限り多くのコンテキストを含める必要があります。

30
JavaScript比較で使用する必要がある等号演算子(== vs ===)はどれですか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 JavaScript を通過するためにJSLintを使用していて、内部を比較するようなことを行うと、==(2つの等号)を===(3つの等号)に置き換えるための多くの提案が返されidSele_UNVEHtype.value.length == 0ますifステートメントます。 交換にパフォーマンス上のメリットがある==とは、===? 多くの比較演算子が存在するため、パフォーマンスの向上は歓迎されます。 タイプ変換が行われない場合、パフォーマンスが向上し==ますか?

14
「==」または「is」のいずれかを使用して文字列を比較すると、異なる結果になることがあるのはなぜですか?
2つの変数が値に設定されているPythonプログラムを持っています'public'。条件式では比較var1 is var2に失敗しますが、これに変更するvar1 == var2とが返されますTrue。 Pythonインタープリターを開いて同じ「is」比較を実行すると、成功します。 >>> s1 = 'public' >>> s2 = 'public' >>> s2 is s1 True ここで何が欠けていますか?

23
Javaで文字列を比較するにはどうすればよいですか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 OverаэтотвопросестьответынаStack Overflowнарусском:КаксравниватьстрокивJava? これまで==、プログラムで演算子を使用して、すべての文字列を比較してきました。しかし、私はバグに遭遇し、そのうちの1つを.equals()代わりに変更して、バグを修正しました。 ある==悪いですか?いつ使用すべきか、使用すべきでないか?違いは何ですか?
724 java  string  equality 

14
「==」と「is」に違いはありますか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 私のGoogle-fuは失敗しました。 Pythonでは、等価性の次の2つのテストは同等ですか? n = 5 # Test one. if n == 5: print 'Yay!' # Test two. if n is 5: print 'Yay!' これは、インスタンスを比較するオブジェクト(listたとえば)にも当てはまりますか? わかりましたので、これは私の質問に答えます: L = [] L.append(1) if L == [1]: print 'Yay!' # Holds true, but... if L is [1]: print 'Yay!' # Doesn't. では、==値がis同じオブジェクトであるかどうかを確認するために、値をテストしますか?


7
equal?、eql?、===、==の違いは何ですか?
これら4つの方法の違いを理解しようとしています。デフォルトで==は、equal?両方のオペランドがまったく同じオブジェクトを参照している場合にtrueを返すメソッドを呼び出します。 ===デフォルトでも通話==呼び出しがequal?...大丈夫なので、すべてのこれらの三つの方法がオーバーライドされていない場合は、その後、私は推測する ===、==とequal?まったく同じことを行いますか? 今来るeql?。これは何をしますか(デフォルト)?オペランドのハッシュ/ IDを呼び出しますか? Rubyにはなぜ多くの等号があるのですか?それらはセマンティクスが異なるはずですか?


10
Pythonクラスで等価(「等価」)をサポートするエレガントな方法
カスタムクラスを作成する場合、==and !=演算子を使用して同等性を許可することがしばしば重要になります。Pythonでは、これはそれぞれ__eq__と__ne__特別なメソッドを実装することで可能になります。これを行うために私が見つけた最も簡単な方法は、次の方法です。 class Foo: def __init__(self, item): self.item = item def __eq__(self, other): if isinstance(other, self.__class__): return self.__dict__ == other.__dict__ else: return False def __ne__(self, other): return not self.__eq__(other) これを行うよりエレガントな方法を知っていますか?上記__dict__のs を比較する方法を使用することの特定の欠点を知っていますか? 注:少し明確化します- __eq__と__ne__が定義されていない場合、この動作が見られます: >>> a = Foo(1) >>> b = Foo(1) >>> a is b False >>> a == b …

15
==と!=は相互に依存していますか?
私はC ++で演算子オーバーロードについて学んだ、と私はそれを見る==と!=、単純にユーザー定義型用にカスタマイズすることができますいくつかの特別な機能です。しかし、私の懸念は、なぜ2つの別個の定義が必要なのかということです。私があればと思ったa == b事実である場合、a != b定義によって、あるため、自動的に偽の、およびその逆で、かつ、他の可能性がないa != bです!(a == b)。そして、これが真実ではない状況を想像することはできませんでした。しかし、おそらく私の想像力は限られていますか、それとも私は何かについて無知ですか? もう1つの観点から1つを定義できることは知っていますが、これは私が求めていることではありません。また、値による比較や同一性によるオブジェクトの比較の違いについても質問していません。または、2つのオブジェクトが同時に等しいか等しくないかどうか(これは間違いなくオプションではありません!これらは相互に排他的です)。私が尋ねているのはこれです: 2つのオブジェクトが等しいことについて質問しても意味がないが、等しくないことについて質問しても意味がない状況はありますか?(ユーザーの観点から、または実装者の観点から) このような可能性がない場合、なぜC ++ではこれら2つの演算子が2つの異なる関数として定義されているのでしょうか。


16
isEqual:およびハッシュをオーバーライドするためのベストプラクティス
isEqual:Objective-Cではどのように適切にオーバーライドしますか?「キャッチ」は、2つのオブジェクトが等しい場合(isEqual:メソッドによって決定される)、それらは同じハッシュ値を持つ必要があるようです。 Cocoa Fundamentals GuideのIntrospectionセクションには、オーバーライドする方法の例があり、次のようにコピーされます。isEqual:MyWidget - (BOOL)isEqual:(id)other { if (other == self) return YES; if (!other || ![other isKindOfClass:[self class]]) return NO; return [self isEqualToWidget:other]; } - (BOOL)isEqualToWidget:(MyWidget *)aWidget { if (self == aWidget) return YES; if (![(id)[self name] isEqual:[aWidget name]]) return NO; if (![[self data] isEqualToData:[aWidget data]]) return NO; return …

6
False == 0およびTrue == 1は実装の詳細ですか、それとも言語によって保証されていますか?
False == 0そしてTrue == 1、Pythonでは(ユーザーによって再割り当てされないと仮定して)が保証されていますか?たとえば、Pythonのバージョン(既存のバージョンと将来のバージョンの両方)に関係なく、次のコードが常に同じ結果を生成することが保証されていますか? 0 == False # True 1 == True # True ['zero', 'one'][False] # is 'zero' 公式ドキュメントへの参照は大歓迎です! 編集:多くの回答で述べたように、boolから継承しintます。したがって、質問は次のように書き直すことができます。「ドキュメントでは、プログラマは整数から継承されるブール値に値0と1?を使用して依存できると公式に言っていますか?」この質問は、実装の詳細が原因で失敗しない堅牢なコードの記述に関連しています。

15
属性によるオブジェクトインスタンスの同等性の比較
私はクラスの持つMyClass2つのメンバ変数が含まれている、fooとbar: class MyClass: def __init__(self, foo, bar): self.foo = foo self.bar = bar 私はのために同じ値をそれぞれ有するこのクラスの2つのインスタンス、持っているfooとしますbar。 x = MyClass('foo', 'bar') y = MyClass('foo', 'bar') ただし、等しいかどうかを比較すると、PythonはFalse次を返します。 >>> x == y False Pythonにこれら2つのオブジェクトを等しいと見なすにはどうすればよいですか?
243 python  equality 


8
Javaでのequals vs Arrays.equals
Javaで配列を比較するとき、次の2つのステートメントの間に違いはありますか? Object[] array1, array2; array1.equals(array2); Arrays.equals(array1, array2); もしそうなら、それらは何ですか?
209 java  arrays  equality 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.