我有一个拼写错误(哦,好吧,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
是一个不存在的命令,但在编译时还不知道。鲁比没有警告,即使打开了警告标志。有没有办法警告这些问题?我必须为这些打字错误重新整理所有来源吗?我能强迫它成为编译时错误吗?
(我知道,这是一种动态语言,您应该通过单元测试检测到这些问题,但在编写新代码时仍然很烦人。)
最佳答案
在这种特定的情况下,您可以选择一个具有适当语法高亮显示的编辑器来直观地检测不是关键字的编辑器(如elsif
所示)。
例如,kate editor对于elif
和elsif
甚至有不同的自动缩进。