4

タイプミスがありました (まあ、Python のルーチンです) が、奇妙なことに、Ruby はそれについて文句を言いませんでした:

> if false; put "NO"; elif true; puts "YE"; end
=> nil

> if false; puts "NO"; elsif true; puts "YE"; end    #proper way
YE

それが完璧な Ruby 構文であることに気付いたとき、私は 30 分ほど考えなければなりませんでした。ifRuby はそれを最初の節のコマンドの一部として解釈します。elifコマンドは存在しませんが、コンパイル時には認識されません。警告フラグがオンになっていても、Ruby はそれについて警告しませんでした。

これらの問題について警告する方法はありますか? そのようなタイプミスについては、すべてのソースを grep する必要がありますか? どうにかしてこれを強制的にコンパイル時エラーにすることはできますか?

(動的言語であることはわかっています。単体テストでこれらの問題を検出する必要がありますが、新しいコードを作成している間はまだ面倒です。)

4

1 に答える 1

4

この特定のケースでは、適切な構文ハイライトを備えたエディターを選択して、それがキーワードではない (そのままの状態elsifで) 視覚的に検出できます。

たとえば、Kate エディターには、 と の自動インデントも異なりelifますelsif

于 2012-04-18T12:39:29.803 に答える