我希望这个代码执行的代码块,并导致产出"x"和"y",或只是抛出一个语法错误:
if true
puts "x"
end if
puts "y"
Run Code Online (Sandbox Code Playgroud)
但是,解释器会忽略该if true块并仅执行puts "y".如果我改为输入以下代码:
if true
puts "x"
end if
Run Code Online (Sandbox Code Playgroud)
解释器以输入结束语法错误退出.是否有一个原因,为什么第一个片段是有效的代码但不知何故执行错误?在我看来,解析器中存在一些错误.
我已经在Ruby 2.1.2以及Ruby 2.1.5中证实了这一点.
ruby ×1