[Ruby] область видимости и eval

Yuri Leikind YuriLeikind at scnsoft.com
Mon Jan 13 13:47:20 MSK 2003


On Mon, 13 Jan 2003 00:08:11 +0200
"Andrew Kulinich" <vanger at west.com.ua> wrote:

> 1) Никак не могу додуматься как сделать следующее:
> 
> test=3
> 
> def qwe(arg)
> ###
> end
> 
> qwe "test"
> 
> Что написать вместо ### чтобы метод выводил значение переменной, имя которой
> передавается в arg.
> 

test=3

qwe = lambda {|arg|
  eval arg
}

puts qwe.call("test")

В методе qwe в первоначальном варианте переменная test не видна, так как это 
простая  локальная переменная,  поэтому я переписал на Proc.new(те lambda)


Либо так:

@test=3

def qwe(arg)
 eval arg
end

puts qwe "@test"



Best regards,
Yuri Leikind

* SynrG notes that the number of configuration questions to answer in sendmail
  is NON-TRIVIAL
	-- Seen on #Debian



More information about the Ruby mailing list