2012-03-05 129 views
3

有沒有辦法從所需文件返回?看來return語句只允許在方法/ lambdas裏面。從包含文件返回

+1

你不應該在需要的文件的頂層執行很多代碼,那麼它的用途是什麼? – 2012-03-05 15:42:14

+1

這是一個rails初始化器,我想只在包含某個gem時才執行它,並且希望避免將所有內容都包含在if塊中。無論如何,這並不是什麼大不了的事情,但我只是好奇,如果紅寶石有這樣的事情。 – rabusmar 2012-03-05 15:47:26

+0

我建議你把它包裝在一個'if'塊中。你可能看起來很奇怪,但實際上在Ruby中做這種事情並不罕見。 @tadman爲+1 – 2012-03-05 15:56:34

回答

6

您總是可以將大部分代碼包裝在條件中。由於紅寶石允許這些幾乎任何地方,你甚至可以有條件地聲明類:

if (defined?(Something)) 
    class SomeClass 
    # ... 
    end 
end 

這不是與C與#ifdef但並不需要單獨的語言。即使你認爲它看起來很奇怪,這也是做事的標準方式。