2010-12-20 6 views
22
def method 
    a = 3 
    b = 4 

    some_method_that_gives # [a, b] 
end 

Antwort

39

local_variables

Es gibt Array von Symbolen, Variablen präsentiert. In Ihrem Fall: [:a, :b]

+0

Kann nicht glauben, ich habe es nicht vor finden. Vielen Dank! – Cheng

+1

Einige Versionen von Ruby geben ein Array von Strings statt eines Arrays von Symbolen aus. Ruby 2.0 und 1.9 verwenden Symbole, aber Ruby 1.8.7 verwendete Strings. – inquiryqueue

4

local_variables listet lokale Variablen auf, aber listet sie auf, bevor sie definiert sind. Siehe dazu:

p local_variables 
a = 1 
p local_variables 

diese Ausgänge

[:a] 
[:a] 

was nicht sein kann, was Sie erwarten. Kontrast mit defined?

p defined? a 
a = 1 
p defined? a 

, die gibt die mehr erwarteten

nil 
"local-variable"