Difference between revisions of "Eval"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:50, 7 February 2021
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));