以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- 最简单的eval语句,能读懂吗? (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=21479) |
-- 作者:Egei -- 发布时间:2012/7/2 10:49:00 -- 最简单的eval语句,能读懂吗? Eval语句,是易表绕不过的砍。但大部分新手遇到这个eval恐怕都挺头疼的。 为什么呢?我想是因为 1、原版的说明文件,对eval的介绍很不清晰详细,大家无法参透eval函数的运行方法和过程。 2、对一些最简的eval语句也不知道是这么执行的。(我也是不知道,今天特开贴请教)
先距离几个最简单的语句。来看看eval可以做什么。如果哪位大侠能对每一句都作出解释,说明真正掌握了eval eval(9) 计算结果 9 eval(9+1)计算结果 10 这是最基本的意义,大家都会 下面再测试字符串
eval(a) 运行提示 a是不可识别的变量,说明这种情况下eval会把a当变量
eval("a")运行结果为 空。这是为什么呢?我没弄懂,eval没有报错,那eval到底对"a"做了些什么呢?eval内部代码是什么? 还有eval("a""")和 eval("""a")运行不报错,但运算结果为空 他们的效果和本质是一样的吗?
eval(""a"")运行提示 语法错误。为什么呢?
eval("""a""")运行结果为字符a。这又是怎么得来的。
eval("""a"""+"""b""")运行结果为a"b 这又怎么解释?
请老师赐教,解释好最简单的eval对我们理解eval很重要
|
-- 作者:wjq1072 -- 发布时间:2012/7/2 10:53:00 -- http://www.egrid2000.com/dvbbs/dispbbs.asp?boardid=2&Id=5478&page=2&star=3 |
-- 作者:wjq1072 -- 发布时间:2012/7/2 17:27:00 -- eval可以对指定的表达式求值,例如eval(1+1)=2 , **关键是准确写出eval中的"表达式"**作为字符串中的引号"放在eval中必须加倍** 一、数值运算表达式: 二、字符串表达式: eval(""ab"+"cd"")--语法错误! eval(Abs(2-8))=6--这时把Abs(2-8)作为表达式,执行结果当然为6 |
-- 作者:swg-1954 -- 发布时间:2012/7/3 20:04:00 -- wjq1072管理员讲得精辟,好,太有帮助了。谢谢! |
-- 作者:Egei -- 发布时间:2012/7/24 2:49:00 -- eval("""ab"""+"""cd""")--与eval("""ab""+""cd""")比较多了二个引号"",执行结果为一字符串ab"cd 既然是多了2个引号,那结果为什么不是 ab""cd呢 |