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

有没有办法警告这些问题?我是否必须为此类拼写错误查找所有来源?我可以以某种方式强制这是编译时错误吗?

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

4

1 回答 1

4

在这种特定情况下,您可以选择具有适当语法高亮显示的编辑器,以直观地检测不是关键字(按原样elsif)。

例如,Kate 编辑器甚至对elif和有不同的自动缩进elsif

于 2012-04-18T12:39:29.803 回答