ここを参照してください
2 and 7
#=> 7
2 or 7
#=> 2
2 or 7 and 12
#=> 12
2 or 7 or 12
#=> 2
2 or 7 and 12 or 10
#=> 12
true and true and false
#=> false
true or true or false
#=> true
true and true or false
#=> true
true or true and false
#=> false
true or true and false and true
#=> false
概要 :
(a)and
演算子のみを使用する式で使用する場合、式の値は常に最後のオペランドであり、演算子のみを使用する式の場合は逆にor
なります。ブール値の場合、式全体が評価されます。
(b)式が混合される場合and
、or
評価は最後まで続行さand
れ、そのROH
オペランドは式の値になります(Boolean
最後のand
RHOの場合、LHOが評価され、その後、結果がブール演算ルールとして生成されます。
(b)のルールを適用する
以下のコードは機能します:
if true or true and false then
puts "Quux"
end
#=> nil
a = true or true and false
#=> false
if a then
puts "Foo"
end
#Foo
#=> nil
Foo
、、の優先順位により、以下のコードが出力さ=
れます。and
or
式a = true or true and false
は、ルール(b)を適用して次のように評価されます。
a = true or true and false
||
(a = true) or true and false
||
true and false
||
false
ルール(b)のもう1つの良い適用
if 2 and 3 or nil
p "hi"
end
#=> "hi"
if 2 or 3 and nil
p "hello"
end
#nothing printed