2012-07-23 66 views
9

我使用紅寶石1.8.7。我可以發誓我已經在我的腳本底部寫過我的函數,並且它工作正常。腳本底部的Ruby方法?

我必須把它們放在頂部嗎?這似乎是他們現在工作的唯一方法。沒什麼大不了的。我只是希望讓他們在底部,所以我想我會問。

+1

你有你有問題一些具體的代碼? – 2012-07-23 20:59:30

回答

15

您可以在一個或多個BEGIN塊(從Perl繼承,它從awk繼承它們)中進行初始化代碼。

can_i_do_this? #=>yes 

BEGIN { 
    def can_i_do_this? 
    puts "yes" 
    end 
} 

以及物品是否完整,也有最終塊:

END { 
    can_i_do_this? #=> yes 
} 

def can_i_do_this? 
    puts "yes" 
end 
5
a 
def a 
    puts "Hello world!" 
end 

在Ruby中運行此腳本會給你:

script.rb:1:in `<main>': undefined local variable or method `a' for main:Object (NameError) 

所以,不,你不能讓他們在底部。由於Ruby是一種解釋型語言,因此任何代碼都將在運行時進行分析和處理。因此,您只能運行在實際引用之前已經定義的代碼(調用方法,使用變量...)。

+0

很酷。會做。謝謝你的解釋。 – 2012-07-23 21:07:50