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

    some_method_that_gives # [a, b] 
end 

Respuesta

39

local_variables

Genera variedad de símbolos, presentando variables. En su caso: [:a, :b]

+0

No puedo creer que no lo encontré antes. ¡Gracias! – Cheng

+1

Algunas versiones de Ruby producen una matriz de cadenas en lugar de una matriz de símbolos. Ruby 2.0 y 1.9 usan símbolos, pero Ruby 1.8.7 usa cadenas. – inquiryqueue

4

local_variables enumera las variables locales, pero las enumera antes de que se definan. Ver esto:

p local_variables 
a = 1 
p local_variables 

estas salidas de

[:a] 
[:a] 

que puede no ser lo que usted espera. Contraste con defined?

p defined? a 
a = 1 
p defined? a 

que da salida a la más anticipada

nil 
"local-variable" 
Cuestiones relacionadas