以下代码的语法无效:
# bad_code.rb
def foo
next
end
$ ruby bad_code.rb
bad_code.rb:2: Invalid next
bad_code.rb: compile error (SyntaxError)
但是,运行ruby -c bad_code.rb
未检测到任何问题:
$ ruby -c bad_code.rb
Syntax OK
但ruby -c
应该用于检查语法:
-c仅检查语法
为什么不检测到这个错误?
rubocop bad_code.rb
也没有检测到这一点:
$ rubocop bad_code.rb
Inspecting 1 file
.
1 file inspected, no offenses detected
我在Ruby 2.1.10上运行它。
答案 0 :(得分:5)
它在语法上是正确的,但是当ruby解释器尝试为它生成代码时,它会识别出next