Ruby中elif拼写错误的触发警告或编译时错误

时间:2012-04-18 12:07:45

标签: ruby

我有一个拼写错误(好吧,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语法时,我不得不考虑半分钟。 Ruby将其解释为第一个if子句的命令的一部分,elif是一个命令,它不存在,但在编译时不知道。即使打开警告标志,Ruby也没有发出警告。

有没有办法警告这些问题?我是否必须为我的所有来源提供这样的错别字?我可以以某种方式强制这是编译时错误吗?

(我知道,这是一种动态语言,您应该通过单元测试来检测这些问题,但在编写新代码时仍然很烦人。)

1 个答案:

答案 0 :(得分:4)

在这种特定情况下,您可以选择具有正确语法高亮的编辑器,以直观地检测到不是关键字(如elsif所示)。

例如,Kate编辑器甚至为elifelsif提供了不同的自动缩进。