eval()

阅读(4400) 标签: 动态解析, 计算, 表达式,

描述:

动态解析并计算表达式。

语法:

eval(StringExp ,{argExp})

备注:

将表达式串作为StringExp的结果,分析计算返回。

?对应argExp计算结果,如果有多个?则可能有多个argExpargExp?一一对应。如果?个数大于argExp个数,则从第一个argExp开始循环

通常还可以使用序号为?指定参数,例如eval( "?2/?1", 3, 6 ) ,第一个?对应第二个参数,第二个?对应第一个参数,因此返回结果为2

?0为所有参数构成的序列。

参数:

StringExp

待计算的表达式串。

argExp

参数表达式。

函数关键字:

?

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为所有参数构成的序列。