Ruby:Boolean
From Blognone
ภาษาruby มีการใช้ boolean เหมือนภาษาอื่นๆ
1 == 1 # true 1 == 2 # false 'russ' == 'smart' # false (1 < 2) #true (4 > 6) # false a = 1 b = 10000 (a > b) # false (4 >=4) # true (1 <=2) # true
true กับ false ก็เหมือนกับ nil ไม่ได้เป็น primitive แต่เป็น instance ของ TrueClass และ flase ก็เป็น instance ของ FalseClass
and และ or ในภาษา Ruby สามารถใช้สัญลักษ์แทนได้
(1 == 1) and (2 == 2) #true (1 == 1) and (2 == 3) #false
เราสามารถใช้ && แทนได้
(1 == 1) && (2 == 2) #true (1 == 1) && (2 == 3) #false
ส่วนคำสั่ง or เราสามารถใช้ || แทนได้
(1 == 1) or (2 == 2) #true (1 == 2) || (2 == 3) #false
สำหรับ "not" เราจะใช้ ! แทน
not (1 ==2) #true ! (1 == 1) # false not false #true
ทุกตัวแปล (Object) สามารถตีความเป็นเป็น boolean ได้ โดยจำง่ายๆ ว่า false และ nil ถือว่าเป็นเท็จ นอกนั้นเป็นจริงหมด
true and 'fred' #true
เพราะว่า 'fred' ไม่ใช่ nil จึงถือว่าเป็นจริง
'fred' && 44 # true
เพราะ 'fred' และ 44 ไม่ใช่ nil จึงเป็นจริงทั้งคู่
nil || false #false
เพราะ false และ nil เป็นเท็จทั้งคู่
ที่น่าจะจำนอกจากนั้นก็มี
if 0 puts('zero is true!') end
ไม่เหมือน c หรือ c++คำสั่งข้างต้นจะพิมพ์คำว่า 'zero is true!' เพราะใน Ruby ค่า "0" เป็นจริง
if "" puts('empty string is true!') end
คำสั่งข้างต้นพิมพ์คำว่า 'empty string is true!' เพราะ empty string ไม่ใช่ nil ถ้าต้องการตรวจสอบว่า string empty หรือเปล่าให้ใช้
s = "" if s.empty? puts('s is empty!') end