ฉันกำลังมองหาคำตอบว่าอะไร|=
ใน Groovy และถึงแม้ว่าคำตอบข้างต้นจะอยู่ที่พวกเขาไม่ได้ช่วยให้ฉันเข้าใจรหัสเฉพาะที่ฉันกำลังดูอยู่
โดยเฉพาะอย่างยิ่งเมื่อนำไปใช้กับตัวแปรบูลีน "| =" จะตั้งค่าเป็น TRUE เป็นครั้งแรกที่พบนิพจน์ความจริงทางด้านขวาและจะถือค่า TRUE สำหรับ | | ที่ตามมาทั้งหมด เหมือนสลัก
นี่คือตัวอย่างแบบง่าย ๆ ของสิ่งนี้:
groovy> boolean result
groovy> //------------
groovy> println result //<-- False by default
groovy> println result |= false
groovy> println result |= true //<-- set to True and latched on to it
groovy> println result |= false
เอาท์พุท:
false
false
true
true
แก้ไข : เหตุใดจึงมีประโยชน์นี้
พิจารณาสถานการณ์ที่คุณต้องการทราบว่ามีอะไรเปลี่ยนแปลงในวัตถุที่หลากหลายหรือไม่และหากเป็นเช่นนั้นให้แจ้งการเปลี่ยนแปลงบางอย่าง ดังนั้นคุณจะตั้งค่าhasChanges
บูลีนและตั้งค่าเป็น |= diff (a,b)
แล้ว|= dif(b,c)
เป็นต้นนี่คือตัวอย่างสั้น ๆ :
groovy> boolean hasChanges, a, b, c, d
groovy> diff = {x,y -> x!=y}
groovy> hasChanges |= diff(a,b)
groovy> hasChanges |= diff(b,c)
groovy> hasChanges |= diff(true,false)
groovy> hasChanges |= diff(c,d)
groovy> hasChanges
Result: true
pipe equal operator
คำถามนี้หรือเอกสารอื่น ๆ ในหัวข้อจะไม่ช่วยให้ผู้คนค้นหา