บูลีนคืออะไร
บูลีนเป็นค่าที่ใช้ในคำสั่งตรรกะเพื่อบอกว่าบางสิ่งถูกพิจารณาว่าจริงหรือเท็จ
ใช้ในการตัดสินใจ .
ใน 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
.
อย่าลืมแชร์บทความนี้ให้คนอื่นค้นพบ 🙂
ขอบคุณสำหรับการอ่าน