2012-04-18 55 views
4

我有一個錯字(哦,Python的例程),但奇怪的是紅寶石沒有抱怨:觸發警告或編譯時錯誤的elif錯字在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也沒有警告。

有沒有辦法警告這些問題?我是否必須爲我輸入這些拼寫錯誤來源?我可以以某種方式強制這是編譯時錯誤?

(我知道,這是一個動態語言,你應該發現這些問題與單元測試,但它仍然是煩人而編寫新的代碼。)

+3

你可以測試你的代碼。只是一個想法;) – d11wtq 2012-04-18 12:11:11

+1

我沒有在這裏看到一個問題。 :) – 2012-04-18 12:13:12

+1

「有沒有辦法警告這些問題」?我可以以某種方式強制這是一個「編譯時」的錯誤? (注:我知道這是一個奇怪的問題,但我不知道任何其他語言允許這樣的錯字) – 2012-04-18 12:18:45

回答

4

在這種特定的情況下,您可以選擇適當的語法高亮的編輯器目視檢測這不是關鍵字(如elsif是)。

例如,Kate編輯器對elifelsif甚至有不同的自動縮進。

相關問題