以下多行条件语句返回意外结果。
if (false and
false and
false
true)
puts 123
end
# => 123
注意缺失的情况。想知道为什么ruby解释器在这种情况下没有检测到语法问题。
答案 0 :(得分:8)
换行符开始一个新表达式,与分号(;
)完全相同。
(false and false and false; true)
# => true
此运算符类似于C和C ++中的comma operator。
一个二元运算符,它计算第一个操作数并丢弃结果,然后计算第二个操作数并返回该值
...与do
-form in Clojure类似:
按顺序计算表达式并返回最后一个的值。
答案 1 :(得分:3)
单独评估单独行中的语句。简单地说,返回括号中的最后一行(即true
)。