Difference between revisions of "Eval"
(No difference)
|
Revision as of 12:23, 5 June 2019
| Eval (Системные функции) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция производит компиляцию и вычисление выражения, заданного на внутреннем языке. Выражение исполняется в контексте текущей функции с доступом к именам, совпадающим с доступом из кода, вызвавшего функцию. Функция вызывает прерывание, если аргумент не может быть скомпилирован из-за ошибки, либо он не является вычисляемым выражением. Функция возвращает результат вычисления выражения. Функция может использоваться для вычисления функций с произвольным количеством аргументов (фильтры базы данных), исполнения кода из внешнего файла и т.д.
Синтаксис
Eval(<Выражение для вычисления (STRING)>):<Результат вычисления выражения>
Аргументы
<Выражение для вычисления (STRING)>- Произвольное вычисляемое выражение, может содержать имена функций, переменных, операции, магические функции.
Возвращаемое значение
Возвращает значение, полученное в результате вычисления заданного выражения.
Примеры
//Иногда возникает необходимость получения значения переменных с определенными именами по индексу или суффиксу
// что было бы неудобно сделать обычный способом
Var Стр1 Export,Стр2 Export,Стр3 Export,Стр4 Export,Стр5 Export,Стр6 Export,Стр7 Export,Стр8 Export,Стр9 Export,Стр10 Export;
Function ПолучитьЗначениеПеременной(i)
Exit Eval("Стр"+i);
EndFunction
//Заполнение группы переменных из цикла
For i:=1 To 10 Do
Exec("Стр"+i+":="+(i*2));
EndDo;
//Получаем значение переменной по индексу
//В лог будет выведено: 10
Message(ПолучитьЗначениеПеременной(5));