描述:
动态解析并计算表达式。
语法:
eval(StringExp ,{argExp})
将表达式串作为StringExp的结果,分析计算返回。
?对应argExp计算结果,如果有多个?则可能有多个argExp,argExp与?一一对应。如果?个数大于argExp个数,则从第一个argExp开始循环。
通常还可以使用序号为?指定参数,例如eval( "?2/?1", 3, 6 ) ,第一个?对应第二个参数,第二个?对应第一个参数,因此返回结果为2。
?0为所有参数构成的序列。
参数:
StringExp |
待计算的表达式串。 |
argExp |
参数表达式。 |
选项:
@s |
不计算,仅返回解析后的表达式。 |
函数关键字:
? |
在StringExp中代表argExp的值。 |
返回值:
表达式的结果值,数据类型由表达式决定
示例:
|
A |
|
1 |
="1+3" |
|
2 |
=eval(A1) |
4 |
3 |
=4 |
|
4 |
=eval("?+5",A3) |
? 为关键字,代表A3参数值,返回值9。 |
5 |
=eval("(?+1)/?",3,4) |
第一个?值为3,第二个?值为4,返回值1.0。 |
6 |
=eval( "(?+?)*?",1, 3 ) |
第一个?值为1,第二个?值为3,第三个?值为1,返回值4。 |
7 |
=eval( "?+?", 3 ) |
结果是6,因为argExp数量小于?,所以它会重复使用argExp。 |
8 |
=eval( "?2/?1", 3, 6 ) |
第一个?对应第二个参数,第二个?对应第一个参数,因此结果为2.0。 |
9 |
=eval( "?0.len()", 3,6) |
返回参数构成的序列长度,?0为所有参数构成的序列。 |
10 |
=eval@s( "(?+?)*?",1, 3 ) |
使用@s选项,不计算,仅返回解析后的表达式,返回结果:(1+3)*1 |