我有一个错字(哦,好吧,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 也没有发出警告。
有没有办法警告这些问题?我是否必须为此类拼写错误查找所有来源?我可以以某种方式强制这是编译时错误吗?
(我知道,它是一种动态语言,你应该通过单元测试来检测这些问题,但是在编写新代码时它仍然很烦人。)