ภาษา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 #ture
ทุกตัวแปล (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