คำถามติดแท็ก equality

ความเท่าเทียมกันคือความสัมพันธ์ระหว่างสองรายการหรือตัวแปรหรือวัตถุที่มีอยู่หาก (1) รายการเป็นรายการเดียวกันตัวแปรหรือวัตถุหรือ (2) รายการนั้นเป็นรายการรายการตัวแปรหรือวัตถุต่างกัน แต่มีค่าเท่ากัน โดยทั่วไปแท็กนี้ควรใช้กับแท็กเฉพาะภาษาโปรแกรมเช่นเดียวกับแท็กบริบทอื่น ๆ เช่นระบบฐานข้อมูล โพสต์ควรมีบริบทเกี่ยวกับการทดสอบความเท่าเทียมกันมากที่สุดเท่าที่จะทำได้

30
ควรใช้โอเปอเรเตอร์ตัวใด (== vs ===) ในการเปรียบเทียบ JavaScript
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังใช้JSLintเพื่ออ่าน JavaScript และมันกลับคำแนะนำมากมายเพื่อแทนที่==(เครื่องหมายเท่ากับสอง) ด้วย===(เครื่องหมายเท่ากับสาม) เมื่อทำสิ่งต่าง ๆ เช่นการเปรียบเทียบidSele_UNVEHtype.value.length == 0ภายในของifคำสั่ง มีประโยชน์ด้านประสิทธิภาพการแทนที่==ด้วย===หรือไม่ การปรับปรุงประสิทธิภาพใด ๆ จะได้รับการต้อนรับเนื่องจากมีตัวดำเนินการเปรียบเทียบหลายตัว หากไม่มีการแปลงประเภทเกิดขึ้นจะมีประสิทธิภาพเพิ่มขึ้น==หรือไม่

14
ทำไมการเปรียบเทียบสตริงโดยใช้ '==' หรือ 'คือ' บางครั้งให้ผลลัพธ์ที่แตกต่างกัน
'public'ฉันมีโปรแกรมหลามที่สองตัวแปรมีการตั้งค่า ในการแสดงออกตามเงื่อนไขที่ฉันมีการเปรียบเทียบvar1 is var2ที่ล้มเหลว แต่ถ้าผมเปลี่ยนไปก็จะส่งกลับvar1 == var2True ตอนนี้ถ้าฉันเปิด Python interpreter และทำแบบเดียวกันคือการเปรียบเทียบก็สำเร็จ >>> s1 = 'public' >>> s2 = 'public' >>> s2 is s1 True ฉันหายไปนี่อะไร

23
ฉันจะเปรียบเทียบสตริงใน Java ได้อย่างไร
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ Наэтотвопросестьответына กองมากเกินнарусском : Каксравниватьстрокив Java? ฉันใช้==โอเปอเรเตอร์ในโปรแกรมของฉันเพื่อเปรียบเทียบสตริงทั้งหมดของฉันจนถึงตอนนี้ อย่างไรก็ตามฉันพบข้อผิดพลาดเปลี่ยนหนึ่งในนั้น.equals()แทนและแก้ไขข้อผิดพลาด คือ==ไม่ดี? เมื่อใดควรและไม่ควรใช้ ความแตกต่างคืออะไร?
724 java  string  equality 

14
มีความแตกต่างระหว่าง“ ==” และ“ เป็น” หรือไม่?
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันGoogle-Fuได้ล้มเหลวฉัน ใน Python การทดสอบสองแบบต่อไปนี้มีความเท่าเทียมกันหรือไม่ 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 …

22
อะไรคือความแตกต่างระหว่าง == และเท่ากับ () ใน Java?
ฉันต้องการชี้แจงหากฉันเข้าใจสิ่งนี้อย่างถูกต้อง: == เป็นการเปรียบเทียบการอ้างอิงคือวัตถุทั้งคู่ชี้ไปที่ตำแหน่งหน่วยความจำเดียวกัน .equals() ประเมินการเปรียบเทียบค่าในวัตถุ

7
ความแตกต่างระหว่างเท่ากับคืออะไร? eql ?, === และ ==?
ฉันพยายามเข้าใจความแตกต่างระหว่างสี่วิธีนี้ ฉันรู้โดยค่าเริ่มต้นที่==เรียกวิธีการequal?ซึ่งผลตอบแทนจริงเมื่อตัวถูกดำเนินการทั้งสองอ้างถึงวัตถุเดียวกัน ===โดยค่าเริ่มต้นยังสาย==ที่โทรequal?... ไม่เป็นไรดังนั้นหากทั้งสามวิธีการไม่ได้แทนที่แล้วผมคิดว่า ===, ==และequal?ทำสิ่งเดียวกัน? มาถึงeql?แล้ว สิ่งนี้ทำอะไร (โดยค่าเริ่มต้น) มันเรียกแฮช / ไอดีของตัวถูกดำเนินการหรือไม่? ทำไมทับทิมถึงมีเครื่องหมายความเสมอภาคมากมาย? พวกเขาควรจะแตกต่างกันในความหมาย?

21
ตัวดำเนินการเปรียบเทียบความเท่าเทียมกันของ PHP (== สองเท่า) และตัวตน (=== สามเท่า) แตกต่างกันอย่างไร
ความแตกต่างระหว่าง==และ===คืออะไร? การ==เปรียบเทียบแบบหลวม ๆทำงานอย่างไร การ===เปรียบเทียบที่เข้มงวดทำงานอย่างไร อะไรคือตัวอย่างที่มีประโยชน์

10
วิธีที่สวยงามในการสนับสนุนความเท่าเทียม ("ความเท่าเทียมกัน") ในคลาส Python
เมื่อเขียนคลาสที่กำหนดเองมักเป็นสิ่งสำคัญที่จะอนุญาตให้มีความเท่าเทียมกันโดยใช้ตัวดำเนินการ==และ !=ใน 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__หรือไม่? หมายเหตุ : การชี้แจงเล็กน้อย - เมื่อ__eq__และ__ne__ไม่ได้กำหนดคุณจะพบพฤติกรรมนี้: >>> a = Foo(1) >>> b = Foo(1) >>> …

15
== และ! = ขึ้นอยู่กับซึ่งกันและกันหรือไม่
ฉันเรียนรู้เกี่ยวกับการดำเนินงานมากใน C ++ และผมเห็นว่า==และ!=เป็นเพียงบางฟังก์ชั่นพิเศษที่สามารถปรับแต่งสำหรับประเภทที่ผู้ใช้กำหนด แม้ว่าข้อกังวลของฉันคือทำไมต้องมีคำจำกัดความแยกจากกันสองประการ ผมคิดว่าถ้าa == bเป็นจริงแล้วa != bเป็นเท็จโดยอัตโนมัติและในทางกลับกันและไม่มีความเป็นไปได้อื่น ๆ เพราะโดยความหมายคือa != b !(a == b)และฉันไม่สามารถจินตนาการถึงสถานการณ์ที่สิ่งนี้ไม่เป็นความจริง แต่บางทีจินตนาการของฉันมี จำกัด หรือฉันไม่รู้อะไรเลย? ฉันรู้ว่าฉันสามารถกำหนดหนึ่งในแง่ของอื่น ๆ แต่นี่ไม่ใช่สิ่งที่ฉันถามเกี่ยวกับ ฉันยังไม่ได้ถามถึงความแตกต่างระหว่างการเปรียบเทียบวัตถุด้วยมูลค่าหรือเอกลักษณ์ หรือว่าวัตถุสองรายการอาจเท่ากันและไม่เท่ากันในเวลาเดียวกัน (นี่ไม่ใช่ตัวเลือกแน่นอน! สิ่งเหล่านี้เป็นสิ่งที่ไม่เกิดร่วมกัน) สิ่งที่ฉันถามคือ: มีสถานการณ์ใดบ้างที่เป็นไปได้ที่การถามคำถามเกี่ยวกับวัตถุสองชิ้นที่เท่ากันนั้นสมเหตุสมผล แต่การถามเกี่ยวกับวัตถุที่ไม่เท่ากันนั้นไม่สมเหตุสมผล (จากมุมมองของผู้ใช้หรือมุมมองของผู้ใช้) หากไม่มีความเป็นไปได้เช่นนั้นเหตุใด C ++ ในโลกจึงให้ผู้ให้บริการสองรายนี้ถูกกำหนดให้เป็นฟังก์ชั่นที่แตกต่างกันสองรายการ


16
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเอาชนะ isEqual: และ hash
คุณจะแทนที่อย่างถูกต้องisEqual:ใน Objective-C ได้อย่างไร? "การจับ" ดูเหมือนว่าถ้าวัตถุสองตัวเท่ากัน (ตามที่กำหนดโดยisEqual:วิธีการ) พวกเขาจะต้องมีค่าแฮชเดียวกัน วิปัสสนาส่วนของคู่มือความรู้พื้นฐานโกโก้จะมีตัวอย่างเกี่ยวกับวิธีการแทนที่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 …

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
เปรียบเทียบอินสแตนซ์ของวัตถุเพื่อความเท่าเทียมกันโดยคุณลักษณะของพวกเขา
ฉันมีคลาสMyClassซึ่งมีตัวแปรสมาชิกสองตัวfooและbar: class MyClass: def __init__(self, foo, bar): self.foo = foo self.bar = bar ฉันมีสองกรณีของชั้นนี้แต่ละที่มีค่าเหมือนกันfooและbar: x = MyClass('foo', 'bar') y = MyClass('foo', 'bar') อย่างไรก็ตามเมื่อฉันเปรียบเทียบมันเพื่อความเท่าเทียมกัน Python จะคืนค่าFalse: >>> x == y False ฉันจะทำให้หลามพิจารณาว่าวัตถุทั้งสองนี้เท่ากันได้อย่างไร
244 python  equality 


8
เท่ากับ vs Arrays.equals ใน Java
เมื่อเปรียบเทียบอาร์เรย์ใน 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.