RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Rexx


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Aleksey Tarasow, 2:5053/57, librexx.ru, behind-mirror.ru
To : Improver
Subj : Rexx

> > Просьба ко всем, запустить скрипт и сообщить, что будет выведено на экран.
> > ===
> > /*
> > */
> > call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
> > call SysLoadFuncs
> >
> > BDNames='TestTest'
> > call value 'Base.'BDNames'.Test1', 'Test1 Test2'
> >
> > say Base.BDNames.Test1
> > BDNames=translate(BDNames)
> > say Base.BDNames.Test1
> >
> > exit
> > ===
>
> Вывод:
> ===
> BASE.TestTest.TEST1
> Test1 Test2
> ===
> Вполне ожидаемо, т.к. вызов "call value...", также как и translate, преобразует "BDNames" в заглавные.

translate() преобразовывает содержимое переменной, а здесь преобразовываться имя переменой - это немного разные вещи.

Во общем не возражаю, так как Rexx во всей литературе называют "языком регистронезависимым". То есть должно быть полностью фиолетово в каком регистре писать имена переменных, так что преобразовывайте куда угодно.
А приведенный пример опровергает тезис "регистронезависимости". Что очень не приятно...


Sun 16 Oct 2016 23:40 Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101




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.