Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

การทำความเข้าใจค่าบูลีนใน Ruby

บูลีนคืออะไร

บูลีนเป็นค่าที่ใช้ในคำสั่งตรรกะเพื่อบอกว่าบางสิ่งถูกพิจารณาว่าจริงหรือเท็จ

ใช้ในการตัดสินใจ .

ใน Ruby เราไม่มีคลาสบูลีน แต่มีวัตถุบูลีน!

เรามี true &false .

ซึ่งเป็นอ็อบเจ็กต์ซิงเกิลตันของ TrueClass &FalseClass .

คุณจะได้รับค่าบูลีนเมื่อคุณใช้วิธีการต่างๆ เช่น :

  • empty?
  • all?
  • match?

และเปรียบเทียบสิ่งต่างๆ ด้วยเครื่องหมายเท่ากับ :

1 == 1

# true

โปรดทราบว่า == ใน Ruby ก็เป็นวิธีหนึ่งเช่นกัน ซึ่งหมายความว่าพฤติกรรมสามารถเปลี่ยนแปลงได้ขึ้นอยู่กับวิธีการนำวิธีนี้ไปใช้

คุณค่าที่แท้จริงและเท็จ

ค่าความจริงคืออะไร?

เป็นค่าที่ถือว่า true ในบริบทบูลีน เช่น คำสั่ง if

ทุกอย่างใน Ruby เป็นความจริง ยกเว้นสองคนนี้ :

  • false
  • nil

ค่าทั้งสองนี้ และเราเรียกค่าทั้งสองนี้ว่า "เท็จ" เท่านั้น

บูลีนในทางปฏิบัติ

หมายความว่าถ้าคุณมีเงื่อนไข…

ถูกใจสิ่งนี้ :

if bacon
  puts "we got bacon"
end

ทับทิมตรวจสอบว่า bacon เป็นความจริง (ทุกอย่างยกเว้น false / nil ) ก่อนพิมพ์สตริง

กล่าวอีกนัยหนึ่ง :

คุณไม่จำเป็นต้องตรวจหาศูนย์หากคุณไม่ได้เรียกใช้เมธอดบน bacon .

เครื่องนำทางที่ปลอดภัย

บางครั้งคุณต้องการเรียกวิธีการบนวัตถุ

ถูกใจสิ่งนี้ :

if bacon.stock
  # ...
end

สิ่งนี้จะทำให้คุณมีข้อผิดพลาดหาก bacon เป็นศูนย์ เพื่อหลีกเลี่ยงสิ่งนี้ คุณสามารถทำสิ่งต่อไปนี้…

ตัวอย่าง :

if bacon&.stock
  # ...
end

&.นี้ เรียกว่าโอเปอเรเตอร์การนำทางที่ปลอดภัยและเปิดตัวใน Ruby 2.3

วิธีการบูลีน

คุณเคยเห็นวิธีการเหล่านี้ลงท้ายด้วยเครื่องหมายคำถามหรือไม่

ชอบ empty? .

เราเรียกสิ่งเหล่านี้ว่า "วิธีเพรดิเคต" &ตามแบบแผนจะส่งคืน true . อย่างใดอย่างหนึ่งเสมอ หรือ false .

เขียนเองได้ :

def published?
  # ...
end

def ready?
  # ...
end

นี่เป็นรูปแบบที่ยอดเยี่ยมที่จะทำให้โค้ดของคุณรู้สึกเหมือนเป็น Ruby มากขึ้น

พารามิเตอร์บูลีนไม่ใช่แนวคิดที่ดี

เราเพิ่งพูดถึงวิธีบูลีนซึ่งดีมาก แต่คุณต้องการหลีกเลี่ยงคือพารามิเตอร์บูลีน

ตัวอย่าง :

def bacon(raw)
end

bacon(false)

เมื่อคุณดูที่ bacon(false) คุณไม่รู้ว่า false . นี้คืออะไร หมายถึง.

คุณจะต้องขุดลงไปในรหัสเพื่อหาคำตอบ

ยิ่งไปกว่านั้น ค่าบูลีนหมายความว่าวิธีการของคุณจะซับซ้อนกว่าที่ควรจะเป็น .

วิธีแก้ปัญหา?

แบ่งวิธีการออกเป็นสองส่วน หรือออกแบบโค้ดของคุณในแบบที่ไม่จำเป็น

บูลีนลอจิก

TrueClass &FalseClass ใช้วิธีการสองสามวิธี

กดไลค์ to_s และตรวจสอบ

แต่ที่น่าสนใจกว่านั้นคือ :

  • &
  • |
  • ^

วิธีการดูแปลก ๆ เหล่านี้มีอะไรบ้าง

ตรรกะบูลีน

นี่คือตารางลอจิกบูลีน :

ชื่อ สัญลักษณ์ จริง / จริง จริง / เท็จ
และ & จริง เท็จ
หรือ | จริง จริง
XOR ^ เท็จ จริง

ตัวอย่าง :

true & true

แม้ว่าเรามักจะไม่ใช้ตรรกะบูลีนในโค้ดของเรา แต่ก็เป็นรากฐานของการทำงานของคอมพิวเตอร์ ดังนั้นการรู้เรื่องนี้จึงเป็นเรื่องที่น่าสนใจ

สรุป

คุณได้เรียนรู้เกี่ยวกับค่าบูลีนใน Ruby แล้ว! จำไว้ว่าทุกอย่างเป็น "ความจริง" โดยมีข้อยกเว้นเพียงอย่างเดียวคือ false &nil .

อย่าลืมแชร์บทความนี้ให้คนอื่นค้นพบ 🙂

ขอบคุณสำหรับการอ่าน