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

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

14
ทำไม x == (x = y) ไม่เหมือนกับ (x = y) == x
ลองพิจารณาตัวอย่างต่อไปนี้: class Quirky { public static void main(String[] args) { int x = 1; int y = 3; System.out.println(x == (x = y)); // false x = 1; // reset System.out.println((x = y) == x); // true } } ฉันไม่แน่ใจว่ามีรายการใน Java Language Specification ที่สั่งให้โหลดค่าก่อนหน้าของตัวแปรเพื่อเปรียบเทียบกับด้านขวา (x = y ) ซึ่งควรจะคำนวณตามลำดับโดยนัยโดยวงเล็บ ทำไมนิพจน์แรกถึงประเมินfalseแต่อันดับที่สองประเมินได้trueอย่างไร …

12
เปรียบเทียบสองอ็อบเจ็กต์ใน Java ด้วยค่า Null ที่เป็นไปได้
ฉันต้องการที่จะเปรียบเทียบสองสายเพื่อความเท่าเทียมกันใน Java เมื่อหนึ่งหรือทั้งสองอาจจะเป็นดังนั้นฉันไม่สามารถเพียงแค่โทรnull .equals()วิธีที่ดีที่สุดคืออะไร? boolean compare(String str1, String str2) { ... } แก้ไข: return ((str1 == str2) || (str1 != null && str1.equals(str2)));
189 java  null  equality 

3
ใน Objective-C อะไรคือสิ่งที่เทียบเท่ากับคำหลัก "instanceof" ของ Java?
ฉันต้องการตรวจสอบว่าวัตถุ (เช่นsomeObject) สามารถกำหนดได้ (cast-can) ให้กับตัวแปรประเภทอื่น (เช่นSpecifiedType) ใน Java ฉันสามารถเขียน: someObject instanceof SpecifiedType คำถามที่เกี่ยวข้องคือการค้นหาว่าประเภทรันไทม์ของวัตถุนั้นเท่ากับประเภทอื่นหรือไม่ ใน Java ฉันสามารถเขียน: someObject.getClass().equals(SpecifiedType.class) สิ่งนี้สามารถทำได้ใน Objective-C

4
ความแตกต่างระหว่าง IEquatable และเพียงแค่เอาชนะ Object.Equals () คืออะไร?
ฉันต้องการของฉันระดับเพื่อให้สามารถทดสอบเมื่อใดก็ตามที่มีค่าเท่ากับอินสแตนซ์ของผู้อื่นFood Foodฉันจะใช้มันในภายหลังกับรายการและฉันต้องการใช้List.Contains()วิธีของมัน ฉันควรจะใช้IEquatable<Food>หรือเพียงแค่แทนที่Object.Equals()? จาก MSDN: วิธีนี้จะกำหนดความเท่าเทียมกันโดยใช้การเปรียบเทียบความเท่าเทียมกันเริ่มต้นตามที่กำหนดโดยการใช้งานของวัตถุของวิธีการ IEquatable.Equals สำหรับ T (ชนิดของค่าในรายการ) ดังนั้นคำถามต่อไปของฉันคือ: ฟังก์ชัน / คลาสใดของกรอบงาน. NET ใช้ประโยชน์จากObject.Equals()อะไร? ฉันควรใช้มันตั้งแต่แรกไหม?
185 c#  .net  equals  equality  iequatable 

7
Python ถ้าไม่ใช่ == vs if! =
อะไรคือความแตกต่างระหว่างโค้ดสองบรรทัดนี้: if not x == 'val': และ if x != 'val': หนึ่งมีประสิทธิภาพมากกว่าอื่น ๆ มันจะดีกว่าที่จะใช้ if x == 'val': pass else:

21
มีอะไรผิดปกติกับการใช้ == เพื่อเปรียบเทียบลอยใน Java?
ตามหน้า java.sun นี้ ==คือโอเปอเรเตอร์การเปรียบเทียบความเท่าเทียมกันสำหรับหมายเลขทศนิยมใน Java อย่างไรก็ตามเมื่อฉันพิมพ์รหัสนี้: if(sectionID == currentSectionID) ในเครื่องมือแก้ไขของฉันและเรียกใช้การวิเคราะห์แบบสแตติกฉันได้รับ: "JAVA0078 ค่าทศนิยมเมื่อเทียบกับ ==" เกิดอะไรขึ้นกับการใช้==เพื่อเปรียบเทียบค่าทศนิยม วิธีที่ถูกต้องในการทำคืออะไร?

19
การเปรียบเทียบสองคอลเลกชันเพื่อความเท่าเทียมกันโดยไม่คำนึงถึงลำดับของรายการในพวกเขา
ฉันต้องการเปรียบเทียบคอลเลกชันสอง (ใน C #) แต่ฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการใช้งานได้อย่างมีประสิทธิภาพ ฉันได้อ่านหัวข้ออื่น ๆ เกี่ยวกับEnumerable.SequenceEqualแต่ไม่ใช่สิ่งที่ฉันต้องการ ในกรณีของฉันคอลเลกชันสองรายการจะเท่ากันถ้าทั้งคู่มีรายการเดียวกัน (ไม่ว่าจะเรียงตามลำดับ) ตัวอย่าง: collection1 = {1, 2, 3, 4}; collection2 = {2, 4, 1, 3}; collection1 == collection2; // true สิ่งที่ฉันมักจะทำคือการวนดูแต่ละไอเท็มของคอลเล็กชันหนึ่งและดูว่ามีอยู่ในคอลเลกชันอื่นหรือไม่จากนั้นวนลูปผ่านแต่ละรายการของคอลเลกชันอื่น (ฉันเริ่มจากการเปรียบเทียบความยาว) if (collection1.Count != collection2.Count) return false; // the collections are not equal foreach (Item item in collection1) { if (!collection2.Contains(item)) …


7
ความเท่าเทียมกันของวัตถุ jQuery
ฉันจะตรวจสอบได้อย่างไรว่าสองวัตถุ jQuery เท่ากัน? ฉันต้องการที่จะค้นหาอาร์เรย์สำหรับวัตถุ jQuery โดยเฉพาะ $.inArray(jqobj, my_array);//-1 alert($("#deviceTypeRoot") == $("#deviceTypeRoot"));//False alert($("#deviceTypeRoot") === $("#deviceTypeRoot"));//False
151 equality  jquery 

8
LINQ เลือก Distinct ที่มีประเภท Anonymous
ดังนั้นฉันมีชุดของวัตถุ ประเภทที่แน่นอนไม่สำคัญ จากนั้นฉันต้องการแยกคู่ที่ไม่ซ้ำกันของคู่ของคุณสมบัติเฉพาะดังนั้น: myObjectCollection.Select(item=>new { Alpha = item.propOne, Bravo = item.propTwo } ).Distinct(); ดังนั้นคำถามของฉันคือ: ความแตกต่างในกรณีนี้จะใช้วัตถุเริ่มต้นเท่ากับ (ซึ่งจะไร้ประโยชน์กับฉันเนื่องจากวัตถุแต่ละชิ้นเป็นของใหม่) หรือสามารถบอกให้ทำสิ่งต่าง ๆ ได้ (ในกรณีนี้ค่าที่เท่ากันของ Alpha และ Bravo => อินสแตนซ์ที่เท่ากัน)? มีวิธีใดบ้างที่จะบรรลุผลดังกล่าวหากไม่ได้ผล

5
ความแตกต่างระหว่าง == และ. equals ใน Scala คืออะไร
ความแตกต่างระหว่าง==และ.equals()ในสกาล่าคืออะไรและเมื่อใดควรใช้อันไหน การใช้งานเหมือนกับใน Java หรือไม่? แก้ไข: AnyValคำถามที่เกี่ยวข้องกับการเจรจาเกี่ยวกับกรณีที่เฉพาะเจาะจงของ Anyกรณีทั่วไปมากขึ้นคือ

5
ทำไม `null> = 0 && null <= 0` แต่ไม่ใช่` null == 0`
ฉันต้องเขียนรูทีนที่เพิ่มค่าของตัวแปรด้วย 1 ถ้าชนิดของมันคือnumberและกำหนด 0 ให้กับตัวแปรถ้าไม่ใช่โดยที่ตัวแปรนั้นเริ่มต้นnullหรือundefinedหรือ การใช้งานครั้งแรกเป็นv &gt;= 0 ? v += 1 : v = 0เพราะฉันคิดว่าอะไรที่ไม่ใช่จำนวนจะทำให้นิพจน์ทางคณิตศาสตร์เป็นเท็จ แต่มันผิดเนื่องจากnull &gt;= 0ถูกประเมินเป็นจริง จากนั้นฉันได้เรียนรู้nullพฤติกรรมเช่น 0 และนิพจน์ต่อไปนี้ล้วนได้รับการประเมินว่าเป็นจริง null &gt;= 0 &amp;&amp; null &lt;= 0 !(null &lt; 0 || null &gt; 0) null + 1 === 1 1 / null === Infinity Math.pow(42, null) === 1 …

6
.equals และ .hashCode เริ่มต้นจะทำงานกับชั้นเรียนของฉันได้อย่างไร
สมมติว่าฉันมีชั้นเรียนของตัวเอง public class MyObj { /* ... */ } มีคุณลักษณะและวิธีการบางอย่าง ไม่ใช้งานเท่ากับไม่ใช้ hashCode เมื่อเราเรียกเท่ากับและ hashCode แล้วการใช้งานเริ่มต้นคืออะไร? จากคลาส Object? แล้วพวกมันคืออะไร? ค่าเริ่มต้นเท่ากับจะทำงานอย่างไร? hashCode เริ่มต้นจะทำงานอย่างไรและอะไรจะกลับมา? == จะตรวจสอบว่าพวกเขาอ้างอิงถึงวัตถุเดียวกันหรือไม่ดังนั้นจึงเป็นเรื่องง่าย แต่วิธีการเท่ากับ () และ hashCode () ล่ะ?

10
ทดสอบความเท่าเทียมกันระหว่างองค์ประกอบทั้งหมดของเวกเตอร์เดียว
ฉันกำลังพยายามทดสอบว่าองค์ประกอบทั้งหมดของเวกเตอร์มีค่าเท่ากันหรือไม่ length()โซลูชั่นฉันมีมากับดูเหมือนค่อนข้างวงเวียนทั้งที่เกี่ยวข้องกับการตรวจสอบ x &lt;- c(1, 2, 3, 4, 5, 6, 1) # FALSE y &lt;- rep(2, times = 7) # TRUE ด้วยunique(): length(unique(x)) == 1 length(unique(y)) == 1 ด้วยrle(): length(rle(x)$values) == 1 length(rle(y)$values) == 1 วิธีการแก้ปัญหาที่จะให้ฉันมีค่าความอดทนในการประเมิน 'ความเท่าเทียมกันในหมู่องค์ประกอบจะเหมาะที่จะหลีกเลี่ยงคำถามที่พบบ่อย 7.31ปัญหา มีฟังก์ชันในตัวสำหรับการทดสอบประเภทที่ฉันมองข้ามไปทั้งหมดหรือไม่? identical()และall.equal()เปรียบเทียบวัตถุ R สองชิ้นดังนั้นจึงใช้ไม่ได้ที่นี่ แก้ไข 1 นี่คือผลการเปรียบเทียบบางส่วน การใช้รหัส: library(rbenchmark) John &lt;- function() …
101 r  vector  equality 

5
เหตุใด (“ foo” === new String (“ foo”)) จึงประเมินค่าเป็นเท็จใน JavaScript
ฉันจะเริ่มใช้ === (สามเท่าเท่ากับการเปรียบเทียบอย่างเข้มงวด) ตลอดเวลาเมื่อเปรียบเทียบค่าสตริง แต่ตอนนี้ฉันพบว่า "foo" === new String("foo") เป็นเท็จและเหมือนกันกับสิ่งนี้: var f = "foo", g = new String("foo"); f === g; // false แน่นอน: f == g; // true ดังนั้นจึงแนะนำให้ใช้ == สำหรับการเปรียบเทียบสตริงเสมอหรือแปลงตัวแปรเป็นสตริงก่อนทำการเปรียบเทียบเสมอ?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.