2013-07-01 2 views
3
loriginal=local_variables 

a=1 
b=2 
c=3 

lvar=local_variables-loriginal 

puts "..........." 
lvar.each{|v| puts v} 
puts "-----------" 

Я хотел бы напечатать все локальные переменные, определенные мной -> a, b, c. Если я просто печатаю local_variables, я получаю много чего не хочу. По предложению кого-то я попробовал выше, но когда я попробую, все переменные появляются в лоригнале (включая a, b, c).Ruby, в котором перечислены только локальные переменные, определенные мной

Есть ли способ просто напечатать a, b, c?

+0

Вы хотите, чтобы имена переменной или их содержимого? –

+0

@ The Tin Man. Фактически local_variables возвращает список символов, и это в основном то, что я хочу символов. –

ответ

0
a=1 
b=2 
c=3 

local_variables.each{|v| puts v} 

Возможно, вы имеете в виду, что в вашем коде могут быть другие переменные, но вам просто нужны некоторые из них в частности. Как насчет того, чтобы ввести их в функцию, а затем позвонить local_variables? Он будет печатать только эти переменные внутри функции.

Если вы сохраняете переменные в списке, вы все равно можете делать с ними все, что захотите.

unwanted=23 

def ada 
    a=1 
    b=2 
    c=3 

    puts local_variables 
    return a,b,c 
end 

mygoodlist=ada() 

#not really necessary 
p=0 
mygoodlist.each{|e| p=p+e} 
puts p 

 Смежные вопросы

  • Нет связанных вопросов^_^