parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

локальные переменные

VRuzin 29.03.2007 07:20

например:
@run[][x;y]
$x(0)
$y(0)
^run2[10]
^$x=$x^; ^$y=$y

@run2[count_]
$x($x+10)
$y($y+20)
^if($count_>0){^run2[^eval($count_-1)]}
В этом коде, если я хочу из первого метода @run[] вызвать второй - @run2[]. @run2[] - с рекурсией на себя... @run2[] изменяет значения $x и $y. В данном случае, метод их изменить не может, так как у нас x и y - это локальные переменные вызывающего метода @run[].
Если бы не было рекурсии я бы воспользовался $caller...
Как сделать так, чтоб переменные были локальными для нескольких методов?
Можно конечно запоминать глобальные переменные, записывая их в локальные, а потом в конце метода восстанавливать... Но может можно это делать по другому? более правильно?