& * параметр во включаемом файле - PullRequest
1 голос
/ 10 апреля 2020

Сейчас я работаю в одной компании, которая делает софт для банков. Он использует OpenEdge и я столкнулся с ситуацией, когда в какую-то процедуру добавляется включаемый файл с параметрами. После этого, если это первый включаемый файл в первом, его можно добавить с параметром & *. Кто-нибудь может объяснить, как это работает?

Например:

first.i:


...
{second.i {*&}}
...

pro c .p:


...
{first.i &f='one '
         &s='two '
} 
...

Ответы [ 2 ]

3 голосов
/ 10 апреля 2020

Звезда амперсанда, добавленная к имени второго включаемого файла, также передает все параметры, переданные в first.i и second.i.

{second.i {&*}}
2 голосов
/ 10 апреля 2020

Немного сложно найти в справочной документации, если вы не знаете, что ищете, это {} ссылка на аргумент , которая гласит:

& имя-аргумента Имя аргумента, на который делается ссылка. Если вы ссылаетесь на имя аргумента, а вызывающая процедура его не предоставляет, ABL игнорирует {& имя-аргумента}. Если имя-аргумента является звездочкой (*), ABL заменяет все аргументы, которые передает вызывающая процедура. Он также добавляет кавычки к каждому параметру, поэтому вы можете передавать список именованных аргументов через несколько уровней включаемых файлов. .

Поскольку все аргументы переданы в second.i, вы можете:

// second.i    
message {&f} {&s}.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...