Eval
简述
表达式求值。返回,表达式的值。字符串表达式中支持return。TSL.EXE支持 tsl -eval "echo 100"的模式直接调用TSL语句。
表达式允许在跨函数中传导引用参数和变量
Eval(<exp:TExpression>):Any
| 名称 | 类型 | 说明 |
|---|
| exp | TExpression | 表达式类型,要计算的表达式。函数表达式直接执行,字符串表达式需在字符串前加&。 |
范例01:
//表达式是字符串表达式。&转换字符串为表达式。
A:='1';
B:='2';
Return eval(&('A+B'));//返回值为表达式的结果:'12'。
范例02:
//表达式是语句表达式
A:=1;
B:=2;//A,B均为整型数据
Return eval(@(A+B));
//返回值为整型数据:3,@(A+B)可以是一个执行语句块,调用该函数会得到执行语句块后的结果。
范例03://字符串表达式中进行return返回。
s:='a:=1;b:=2;return a+b;';
return eval(&s);
//结果:3
范例4:跨函数中传导引用参数和变量
setsysparam(pn_stock(),"SH600507");
return eval_test("StockZf4(t)",20250723t);
function eval_test(e,endt);
begin
t:=specdate(ref(sp_time(),1),endt);
return array(datetostr(t),eval(&e));
end
结果:
Call CallInArray