求助:eval 的一参都是问号时的解析
大佬们,早上好😄
eval 有个小问题恳请大佬们得闲时给予指导解惑:
如果把 eval 中的 1 参全部写成问号,eval(“????”,xi,…) 这样是不是属于不正当用法,比如:
=eval("(???)?(???)",1,"+",2,"*",3,"-",4)
预想是 eval 能把 1 参解析成 (1+2)*(3-4) 后计算出结果得到 -3,但报错了:
如果加上 @s 选项只解析不计算,结果跟预想的一致:
此时,再用 eval 解析计算表达式就出结果了,eval(eval@s(“???”,xi,…)) 这样多套了一层
=eval(eval@s("(???)?(???)",1,"+",2,"*",3,"-",4))
如果想用 eval 直接解析计算出 1 参全是问号的表达式,要如何写能实现?
=eval(“(???)?(???)”,1,“+”,2,“*”,3,“-”,4)没有 s 选项时 eval 的第一个参数需要是一个合法的表达式串,运算符不能当做参数传递。像你这个需要先拼出表达式串再 eval 一下,可以写成 =eval(eval@s(…)) 或者 ${eval@s(…)}。
知道了,谢谢大佬指导解惑🙏
一大早起猛了,我还以为只要有个 expression 就能解析计算😄
问题出处,我在抄论坛 > 算 24 点 << 的代码时用到了 eval,故有此一问😄