2012-04-18 11 views
4

でELIFのタイプミスのための時間のエラーをコンパイル私はタイプミス(まあ、Pythonのルーチンを)持っていたが、不思議なRubyはそれについて文句を言うしませんでした:トリガー警告やRuby

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

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

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

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

(私が知っている、それはあなたがユニットテストでこれらの問題を検出する必要があり、動的言語だが、新しいコードを書きながら、それはまだ迷惑なんだ。)

+3

コードをテストできます。ただの考え;) – d11wtq

+1

ここに質問はありません。 :) –

+1

"これらの問題について警告する方法はありますか?"どういうわけか、これを強制的に「コンパイル時」のエラーにすることはできますか? (注:それは奇妙な質問だと知っていますが、私はそのようなタイプミスを許す他の言語は知らない) –

答えて

4

この特定のケースでは、適切なシンタックスハイライトでエディタを選択することができますキーワードではないことを視覚的に検出します(elsif)。

たとえば、Kateエディタでは、elifelsifの異なる自動インデントがあります。