RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > > Налетел на такую проблему: > > > Ошибка в том, что в подпрограмме используешь локальные переменные "Structure" и "TabType", а потом их же используешь, как часть переменной "test.", при этом там, фактически, вместо "Structure" и "TabType" подставляются их значения. Это какая фишка REXX... > > Даже не смотря на то что ему прямо сказали, что как часть переменной "test." подставляем текст? Всегда считал, что при использовании value не происходит разименования имени. А сейчас выходит, что записи вида value rc'.Structure' и value rc'.'Structure эквиваленты. Печалька... > > Не совсем так, эти команды не будут эквивалентны. Если там ставишь имя в кавычках, то ищется переменная с этим именем и подставляется её значение, а если без кавычек, то берётся значение переменной в качестве имени и ищется по нему... Если не понятно изложил, то вот что пишется в примере в доках: > > /* После: K=3; fred='K' */ > VALUE('fred') -> 'K' /* ищет FRED */ > VALUE(fred) -> '3' /* ищет K */ > VALUE(fred,5) -> '3' /* и устанавливает K=5 */ > VALUE(fred) -> '5' > > Да и ошибка вылезает не в них, тут несколько другой ньюанс, например, выполнение команд: > ------- > test.asd = '123456' > asd = 'dsa' > say test.asd > ------- > выведет на экран строку 'TEST.dsa', а не цифры... В общем, пока не ушёл в бесконечную рекурсию, пытаясь в этом разобраться, просто поменяй имена переменных. :-)
_, _, _, _, _ _ _,_
(_ | / \ |\ | | |_/
, ) | , \ / | \| | | \
~ ~~~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.