问题标签 [eval]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macros - 评估不适用于未扩展的宏报价
在普通的 lisp 中,我可以这样做:
src-> (defmacro 宏-hello() `"hello")
(eval '(宏你好))
没问题。
在 Clojure 中:
(defmacro 宏你好 [] `"你好")
(eval '(宏你好))
给我一个错误。我做错了什么吗?
Clojure 错误:
线程“主”java.lang.Exception 中的异常:无法解析符号:clojure.lang.Compiler.analyze(Compiler.java:4340) 在 clojure.lang.Compiler 的此上下文中的宏问候 (NO_SOURCE_FILE:12)。 clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:2767) 的分析(Compiler.java:4286) clojure.lang.Compiler.analyzeSeq(Compiler.java:4498) 的 clojure.lang.Compiler.analyze(Compiler .java:4325) 在 clojure.lang.Compiler.analyze(Compiler.java:4286) 在 clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:3862) 在 clojure.lang.Compiler$FnMethod.parse( Compiler.java:3697) 在 clojure.lang.Compiler$FnMethod.access$1100(Compiler.java:3574) 在 clojure.lang.Compiler$FnExpr.parse(Compiler.java:2963) 在 clojure.lang.Compiler.analyzeSeq(编译器.java:4494) at clojure.lang.Compiler.analyze(Compiler.java:4325) at clojure.lang.Compiler.eval(Compiler.java:4530) at clojure.core$eval__3990.invoke(core.clj:1728) at com. yourcompany.defpackage$_main__4.invoke(defpackage.clj:12) at clojure.lang.AFn.applyToHelper(AFn.java:171) at clojure.lang.AFn.applyTo(AFn.java:164) at com.yourcompany.defpackage .main(未知来源)引起:java.lang.Exception:无法解析符号:在clojure.lang.Compiler.resolveIn(Compiler.java:4682)的clojure.lang.Compiler.resolve( Compiler.java:4628) at clojure.lang.Compiler.analyzeSymbol(Compiler.java:4605) at clojure.lang.Compiler.analyze(Compiler.java:4307) ... 还有 17 个 Java 结果:14325) at clojure.lang.Compiler.eval(Compiler.java:4530) at clojure.core$eval__3990.invoke(core.clj:1728) at com.yourcompany.defpackage$_main__4.invoke(defpackage.clj:12) at clojure.lang.AFn.applyToHelper(AFn.java:171) at clojure.lang.AFn.applyTo(AFn.java:164) at com.yourcompany.defpackage.main(Unknown Source) 原因:java.lang.Exception:无法解析符号:在 clojure.lang.Compiler.resolveIn(Compiler.java:4682) 在 clojure.lang.Compiler.resolve(Compiler.java:4628) 在 clojure.lang.Compiler.analyzeSymbol( Compiler.java:4605) at clojure.lang.Compiler.analyze(Compiler.java:4307) ... 还有 17 个 Java 结果:14325) at clojure.lang.Compiler.eval(Compiler.java:4530) at clojure.core$eval__3990.invoke(core.clj:1728) at com.yourcompany.defpackage$_main__4.invoke(defpackage.clj:12) at clojure.lang.AFn.applyToHelper(AFn.java:171) at clojure.lang.AFn.applyTo(AFn.java:164) at com.yourcompany.defpackage.main(Unknown Source) 原因:java.lang.Exception:无法解析符号:在 clojure.lang.Compiler.resolveIn(Compiler.java:4682) 在 clojure.lang.Compiler.resolve(Compiler.java:4628) 在 clojure.lang.Compiler.analyzeSymbol( Compiler.java:4605) at clojure.lang.Compiler.analyze(Compiler.java:4307) ... 还有 17 个 Java 结果:1yourcompany.defpackage$_main__4.invoke(defpackage.clj:12) at clojure.lang.AFn.applyToHelper(AFn.java:171) at clojure.lang.AFn.applyTo(AFn.java:164) at com.yourcompany.defpackage .main(未知来源)引起:java.lang.Exception:无法解析符号:在clojure.lang.Compiler.resolveIn(Compiler.java:4682)的clojure.lang.Compiler.resolve( Compiler.java:4628) at clojure.lang.Compiler.analyzeSymbol(Compiler.java:4605) at clojure.lang.Compiler.analyze(Compiler.java:4307) ... 还有 17 个 Java 结果:1yourcompany.defpackage$_main__4.invoke(defpackage.clj:12) at clojure.lang.AFn.applyToHelper(AFn.java:171) at clojure.lang.AFn.applyTo(AFn.java:164) at com.yourcompany.defpackage .main(未知来源)引起:java.lang.Exception:无法解析符号:在clojure.lang.Compiler.resolveIn(Compiler.java:4682)的clojure.lang.Compiler.resolve( Compiler.java:4628) at clojure.lang.Compiler.analyzeSymbol(Compiler.java:4605) at clojure.lang.Compiler.analyze(Compiler.java:4307) ... 还有 17 个 Java 结果:1无法解析符号:在 clojure.lang.Compiler.resolveIn(Compiler.java:4682) 在 clojure.lang.Compiler.resolve(Compiler.java:4628) 在 clojure.lang.Compiler.analyzeSymbol( Compiler.java:4605) at clojure.lang.Compiler.analyze(Compiler.java:4307) ... 还有 17 个 Java 结果:1无法解析符号:在 clojure.lang.Compiler.resolveIn(Compiler.java:4682) 在 clojure.lang.Compiler.resolve(Compiler.java:4628) 在 clojure.lang.Compiler.analyzeSymbol( Compiler.java:4605) at clojure.lang.Compiler.analyze(Compiler.java:4307) ... 还有 17 个 Java 结果:1
[编辑]:添加结束双引号
data-binding - 在 Databinder.Eval 之前
..曾经有另一种使用“ItemBinder”属性将项目绑定到 ASP.Net 中的数据容器的方法,但谷歌上没有任何东西可以刷新我的记忆。
通常,我会有一个字符串数组,当绑定时我的 DataGrid 应该显示数组的值。这是 DataBinder.Eval() 的替代方法。
谢谢
language-agnostic - 我什么时候应该使用 eval (获取一个字符串并在运行时将其作为代码执行)?
我经常听到这样的论点(在 javascript 中,但许多语言都有类似 eval 的功能)使用 eval 是“不好的”。论点是您认为使用 eval 的大多数事情都可以通过其他方式完成,事实上 eval 在大多数情况下非常慢,并且它可以允许用户输入要执行的代码(如果没有采取适当的预防措施)。我们知道大多数功能不仅本质上是“坏的”,而是让我们关注 eval,
eval 的一些有效用途是什么?(除了为调试应用程序的开发人员提供了一个不错的功能)
javascript - javascript中有没有办法将给定函数的定义作为字符串获取,以便可能修改和评估?
我试图在一个新的上下文中评估一个函数,即一个包含某个定义的单词但在范围内不存在的函数。如果我将函数定义为字符串,这很容易,但我想提供使用常规函数列表执行此操作的能力,如下所示:
然后稍后:
我缺少的是定义()函数或等效函数,它返回函数的源。这在javascript中可能吗?
vb.net - 在 vb.net 中做数学,就像在 javascript 中的 Eval
有什么方法可以解析 vb.net 中的字符串(例如,内置方法),可以像 Eval 一样进行数学运算吗?例如,3+(7/3.5) 作为字符串将返回 2。
我不是要你为我编写代码,我只是想知道是否有内置的方法可以做到这一点,如果没有,我会自己编写代码。
我可以打赌它自己无法解析像 Sin(90) 这样的东西,我知道需要用 Math.Sin(90) 替换它。
如果有内置方法,你如何使用它?
python - Python Eval:这段代码有什么问题?
我正在尝试编写一个非常简单的 Python 实用程序供个人使用,它计算文本文件中在命令行中指定的谓词为真的行数。这是代码:
当我使用 运行它时python count.py myFile.txt "int(line) == 0"
,我收到以下错误:
对我来说,这看起来像是完全有效的 Python 代码(尽管我以前从未使用过 Python 的 eval,所以我不知道它的怪癖(如果有的话)是什么)。请告诉我如何解决此问题以使其正常工作。
binding - 有没有办法将所有定义的变量传递给 GroovyShell?
现在,当我尝试在 Groovy 中评估一段代码时,我必须执行以下操作:
当您定义了很多变量时,这可能会非常讨厌。有没有更好的方法来做到这一点?是否有类似 Python 的locals
东西,或者类似的东西列出了所有声明的变量?
javascript - Javascript:由 eval() 和 new Function() 创建的调试代码
我试图将一个私有变量放入一个已经存在的函数中,例如:
我的目标是运行 get() 函数,该函数由现有的 AObject 拥有,带有私有 var ...我使用 eval(或 new Function)获得它,但不幸的是调试器将被破坏!
那么,有没有一种方法可以在不使用 eval 的情况下实现这一点,或者有一种方法可以使用 eval 并保持调试器有用?
javascript - 如何以对象形式在eval中传递参数?
我有这个 json,当我得到这个 json 时,我需要运行回调对象中的函数。
所以根据这个我需要运行这个:
我可以使用 eval 函数来做到这一点,例如:
我可以通过将其放入 for in 并将参数写入字符串来自动执行此操作,但我认为这不是最好的方法。
有没有办法从 var 分配函数名称并将其参数作为对象提供,在我的情况下,例如:
我知道这不是这样做的方法,但这是我想学习的。
谢谢,思南。