คำถามติดแท็ก comparison-operators

24
จะตรวจสอบได้อย่างไรว่าสตริงว่างเปล่า?
Python มีลักษณะเหมือนตัวแปรสตริงว่างเปล่าหรือไม่ซึ่งคุณสามารถทำได้: if myString == string.empty: วิธีที่ดีที่สุดในการตรวจสอบค่าสตริงที่ว่างเปล่าคืออะไร ฉันพบการเข้ารหัสยาก""ทุกครั้งที่ตรวจสอบสตริงว่างเปล่าไม่ดี



5
ความแตกต่างระหว่าง“! ==” และ“ ==!” [ปิด]
คำถามนี้ไม่น่าจะช่วยผู้เข้าชมในอนาคต มันเกี่ยวข้องเฉพาะกับพื้นที่ทางภูมิศาสตร์ขนาดเล็กช่วงเวลาที่เฉพาะเจาะจงหรือสถานการณ์ที่แคบเป็นพิเศษซึ่งโดยทั่วไปไม่สามารถใช้ได้กับผู้ชมทั่วโลกของอินเทอร์เน็ต สำหรับความช่วยเหลือในการทำคำถามนี้มากขึ้นบังคับในวงกว้างไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา เมื่อวานนี้ฉันสะดุดเมื่อฉันแก้ไขโค้ด PHP ที่เขียนโดยคนอื่น ฉันรู้สึกงุนงงว่าการเปรียบเทียบแบบธรรมดา ( if ($var ==! " ")) ไม่ทำงานอย่างที่คาดไว้ หลังจากการทดสอบบางฉันรู้ว่าใครก็ตามที่เขียนรหัสที่ใช้==!แทนการ!==เป็นผู้ดำเนินการเปรียบเทียบ ฉันไม่เคยเห็น==!ในภาษาใดเลยฉันจึงสงสัยว่ารหัสนี้จะทำงานได้อย่างไรและทำการทดสอบ: <?php echo "int\n"; echo "1 !== 0: "; var_dump(1 !== 0); echo "1 !== 1: "; var_dump(1 !== 1); echo "1 ==! 0: "; var_dump(1 ==! 0); echo "1 ==! 1: "; …

4
การดำเนินการ "false <true" ถูกกำหนดอย่างดีหรือไม่
ข้อกำหนด C ++ กำหนดไว้หรือไม่: การมีอยู่ของตัวดำเนินการ 'น้อยกว่า' สำหรับพารามิเตอร์บูลีนและหากเป็นเช่นนั้น ผลลัพธ์ของการเปลี่ยนลำดับพารามิเตอร์ 4 รายการคืออะไร? กล่าวอีกนัยหนึ่งผลลัพธ์จากการดำเนินการต่อไปนี้ถูกกำหนดโดยสเปคหรือไม่ false &lt; false false &lt; true true &lt; false true &lt; true ในการตั้งค่าของฉัน (Centos 7, gcc 4.8.2) โค้ดด้านล่างจะแยกแยะสิ่งที่ฉันคาดหวัง (จากประวัติของ C ในการแทน false เป็น 0 และ true เป็น 1): false &lt; false = false false &lt; true = true true …

1
ค้นหาสตริงย่อยในสตริงใน TWIG
ฉันต้องการค้นหาสตริงย่อยของสตริงหรือตรวจสอบว่าไม่มีสตริงย่อยดังกล่าวโดยใช้ Twig ในคำพูดฉันต้องการอะนาล็อกของ 'strstr' หรือ 'strpos' ใน php ฉัน googled และค้นหาปัญหานี้ใน stackoverflow แต่ไม่พบอะไร มีใครรู้วิธีแก้ปัญหานี้หรือไม่?

8
ไม่พบตัวดำเนินการ == ขณะเปรียบเทียบโครงสร้างใน C ++
เมื่อเปรียบเทียบสองอินสแตนซ์ของโครงสร้างต่อไปนี้ฉันได้รับข้อผิดพลาด: struct MyStruct1 { MyStruct1(const MyStruct2 &amp;_my_struct_2, const int _an_int = -1) : my_struct_2(_my_struct_2), an_int(_an_int) {} std::string toString() const; MyStruct2 my_struct_2; int an_int; }; ข้อผิดพลาดคือ: ข้อผิดพลาด C2678: binary '==': ไม่พบตัวดำเนินการที่ใช้ตัวถูกดำเนินการด้านซ้ายประเภท 'myproj :: MyStruct1' (หรือไม่มีการแปลงที่ยอมรับได้) ทำไม?

2
ทำไมโอเปอเรเตอร์! = ถูกลบใน C ++ 20 สำหรับไลบรารีมาตรฐานหลายประเภท?
อ้างอิงจากcppreference , std::type_info::operator!=ถูกลบด้วย C ++ 20, แต่std::type_info::operator==ดูเหมือนว่ายังคงอยู่ อะไรคือเหตุผลเบื้องหลัง ฉันอาจเห็นด้วยว่าการเปรียบเทียบความไม่เท่าเทียมนั้นไร้ความหมาย แต่จากนั้นการเปรียบเทียบความเท่าเทียมจะไม่มีความหมายเช่นกันใช่ไหม ในทำนองเดียวกันoperator!=ชนิดไลบรารีมาตรฐานอื่น ๆ อีกมากมายรวมถึงคอนเทนเนอร์เช่นstd::unordered_map::operator!=และstd::unordered_set::operator!=จะถูกลบใน C ++ 20 ตาม cppreference ต้องเขียนif(!(id1 == id2))ไม่ทำให้รหัสใด ๆ ที่ชัดเจนเมื่อเทียบกับif(id1 != id2)ในทางตรงกันข้าม ...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.