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

Yuri Leikind YuriLeikind at scnsoft.com
Mon Jan 13 13:53:08 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.
> 
> 2) имеется конструкция
> test = 2
> qwe = "test"
> print eval "eval \"qwe\""
> 
> Мне кажется что эта конструкция должна выводить "2". Где логику править?


А мне кажется, что результат должен быть "test"

Первый eval выполняет код 
 
      eval "qwe"

Выполняя этот код, запускается второй eval, который возвращает 
значение своего кода

       qwe

А значение qwe - "test"



> 
> 
> _______________________________________________
> Ruby mailing list
> Ruby at altlinux.ru
> http://www.altlinux.ru/mailman/listinfo/ruby


___
Best regards,
Yuri Leikind

Any fool can tell the truth, but it requires a man of sense to know
how to lie well.
		-- Samuel Butler



More information about the Ruby mailing list