5

次のコードには無効な構文があります:

# 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 で実行しました。

4

1 に答える 1

5

構文的には正しいですが、Ruby インタープリターがコードを生成しようとすると、対象がないと認識します。next

于 2016-05-06T08:33:03.417 に答える