Как перечислить локальные переменные в Ruby? - PullRequest
26 голосов
/ 20 декабря 2010
def method
  a = 3
  b = 4

  some_method_that_gives # [a, b] 
end

Ответы [ 2 ]

41 голосов
/ 20 декабря 2010

local_variables

Выводит массив символов, представляющих переменные.В вашем случае: [:a, :b]

6 голосов
/ 15 февраля 2014

local_variables перечисляет локальные переменные, но перечисляет их до того, как они будут определены.Смотрите это:

p local_variables
a = 1
p local_variables

это выводит

[:a]
[:a]

, что может не соответствовать вашим ожиданиям.Контраст с defined?

p defined? a
a = 1
p defined? a

, который выводит более ожидаемый

nil
"local-variable"
...