以下是引用sylknb在2015-6-19 11:34:04的发言:
指定要计算的表达式。cExpression 可以是一个原义字符串,或是被附上引号的任何数据类型的有效 Visual FoxPro 表达式、变量、数组元素或字段
1,什么是原义字符串
2。是不是所有有效的表达式都要加" "?
1、所谓原义字符串,就是指该字符串内容只作为文本,而不另外再作计算。比如:"ABC"、"课程代码"等等;
2、作为该函数的参数,只能是字符型,但并不是都要加引号,也可以用字符型的变量直接作为参数。此时,它对变量的内容进行计算。看下面的栗子:
A、Xm="[ABC]"-->?EVALUATE(Xm),结果为:ABC。
分析:该函数先解析内存变量Xm的内容,内容是“
[ABC]”(不含两侧双引号,所以我用的是中文双引号,下文均同)。而“
[ABC]”在FoxPro中是字符串常量,所以输出了“ABC”。
B、Xm="[ABC]"-->?EVALUATE(Xm+"D"),结果为:操作符/操作类型不匹配。
分析:同样,该函数先解析内存变量Xm的内容,内容是“
[ABC]”,再连接上字符“D”,整个参数就是“
[ABC]D”。这时,对“
[ABC]D”进行计算时发现,它既不是一个变量,又不是一个有合理运算符的表达式,FoxPro看不懂了,于是就提醒错误。
C、Abc=3-->Xm="ABC"-->?EVALUATE(Xm+"+5"),结果为:8。
分析:
注意:这里的Xm内容里已经没有方括号了。根据上面2个栗子所述,这里的参数被解析为“
ABC+5”。那么,内存变量Abc=3,结果自然就是3+5=8了。
最后来一个,你自己动脑筋想想答案是什么,再用FoxPro验证下和你想的是否一致,思考一下为什么是这个答案。如果这道题你想对了,那么恭喜你,这个函数你学会了。
D、DE=5-->Abc=3-->Xm="[ABC]"-->?EVALUATE(Xm+[+DE]),结果为:?