我有一个拼写错误(好吧,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也没有发出警告。
有没有办法警告这些问题?我是否必须为我的所有来源提供这样的错别字?我可以以某种方式强制这是编译时错误吗?
(我知道,这是一种动态语言,您应该通过单元测试来检测这些问题,但在编写新代码时仍然很烦人。)
答案 0 :(得分:4)
在这种特定情况下,您可以选择具有正确语法高亮的编辑器,以直观地检测到不是关键字(如elsif
所示)。
例如,Kate编辑器甚至为elif
和elsif
提供了不同的自动缩进。