問題タブ [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 - 展開されていないマクロ引用符で評価が機能しない
一般的なリスプでは、これを行うことができます:
src-> (defmacro macro-hello () `"hello")
(eval '(マクロこんにちは))
問題なし。
クロージュアで:
(defmacro マクロこんにちは [] `"こんにちは")
(eval '(マクロこんにちは))
エラーが発生します。私は何か間違ったことをした?
Clojure エラー:
スレッド「メイン」での例外 java.lang.Exception: シンボルを解決できません: clojure.lang.Compiler の clojure.lang.Compiler.analyze(Compiler.java:4340) で、このコンテキスト (NO_SOURCE_FILE:12) で macro-hello です。 analyze(Compiler.java:4286) at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:2767) at clojure.lang.Compiler.analyzeSeq(Compiler.java:4498) at 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: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: Unable to resolve symbol: macro-hello in this context at clojure.lang.Compiler.resolveIn(Compiler.java:4682) at 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) clojure.lang.Compiler.eval(Compiler.java:4530) で clojure.core$eval__3990.invoke(core.clj:1728) で com.yourcompany.defpackage$_main__4.invoke(defpackage.clj:12) で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) clojure.lang.Compiler.eval(Compiler.java:4530) で clojure.core$eval__3990.invoke(core.clj:1728) で com.yourcompany.defpackage$_main__4.invoke(defpackage.clj:12) で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: Unable to resolve symbol: macro-hello in this context at clojure.lang.Compiler.resolveIn(Compiler.java:4682) at 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: Unable to resolve symbol: macro-hello in this context at clojure.lang.Compiler.resolveIn(Compiler.java:4682) at 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 のデータ コンテナーに項目をバインドする別の方法がありましたが、Google では何も記憶が更新されません。
通常、私は DataGrid が配列の値を表示する必要があるとバインドされたときに文字列配列を持っています。これは、DataBinder.Eval() の代替メソッドです。
ありがとう
language-agnostic - いつevalを使用する必要がありますか(文字列を取得し、実行時にコードとして実行します)?
私はよく(javascriptで、しかし多くの言語にはevalのような機能がある)evalの使用は「悪い」という議論を聞いたことがあります。evalを使用すると思われるほとんどのことは他の方法で実行できるという議論、ほとんどの場合evalは非常に遅いという事実、ユーザーが実行するコードを入力できるという事実(適切な予防策が講じられていない場合) )。ほとんどの機能は本質的に「悪い」だけでなく、評価にスポットライトを当てることができます。
evalの有効な用途にはどのようなものがありますか?(アプリケーションをデバッグする開発者に優れた機能を提供することに加えて)
javascript - 特定の関数の定義を文字列として取得し、変更して評価する方法はjavascriptにありますか?
新しいコンテキスト、つまり、スコープに存在しない定義された特定の単語を含む関数を評価しようとしています。関数を文字列として定義していれば十分簡単ですが、次のように通常の関数リストでこれを行う機能を提供したいと思います。
じゃあ後で:
私が欠けているのは、関数のソースを返す definition() 関数または同等のものです。これはJavaScriptで可能ですか?
vb.net - javascriptのEvalのようにvb.netで数学を行う
Evalのように数学を実行できるvb.netの文字列(組み込みメソッドなど)を解析する方法はありますか?たとえば、文字列としての3+(7 / 3.5)は2を返します。
私はあなたにこれをコーディングするように求めているのではありません。これを行うための組み込みの方法があるかどうかを知りたいだけです。ない場合は自分でコーディングします。
Sin(90)のようなものをそれ自体で解析することはできないだろうと賭けることができ、それをMath.Sin(90)に置き換える必要があることを理解しています。
組み込みのメソッドがある場合、どのように使用しますか?
python - Python Eval:このコードの何が問題になっていますか?
コマンドラインで指定された述語がtrueであるテキストファイルの行数をカウントする、個人使用のための非常に単純なPythonユーティリティを作成しようとしています。コードは次のとおりです。
を使用して実行するとpython count.py myFile.txt "int(line) == 0"
、次のエラーが発生します。
これは私には完全に有効なPythonコードのように見えます(Pythonのevalをこれまで使用したことがないので、その癖があればわかりません)。これを修正して機能させる方法を教えてください。
binding - 定義済みのすべての変数を GroovyShell に渡す方法はありますか?
今、Groovy でコードを評価しようとしているとき、次のようなことをしなければなりません:
多くの変数が定義されている場合、これはかなり面倒です。これを行うより良い方法はありますか?Pythonの のようなものlocals
、または宣言されたすべての変数をリストする同様のものはありますか?
ruby - Ruby での少し複雑な eval
次のような文字列を評価するには、eval の特別な動作が必要です。
の中へ
出来ますか?もしそうなら、適切な例を挙げていただけますか?最近、この例を見つけました。そこでは、メートルとインチで文字列を評価するという話がありました。
javascript - Javascript: eval() および new Function() によって作成されたコードのデバッグ
プライベート変数を既存の関数に入れようとしています。例:
私の目標は、既存の AObject が所有する get() 関数を private var で実行することです ... eval(または new Function) を使用して取得しますが、残念ながらデバッガーが壊れます!
では、eval を使用せずにこれを達成する方法、または eval を使用してデバッガーを便利に保つ方法はありますか?
javascript - オブジェクト形式で eval にパラメータを渡す方法は?
このjsonがあり、このjsonを取得したら、コールバックオブジェクトにある関数を実行する必要があります。
これによると、これを実行する必要があります:
私は次のようなeval関数でそれを行うことができます:
これを for に入れ、パラメータを文字列に書き込むことでこれを自動化できますが、これが最善の方法だとは思いません。
var から関数名を割り当て、そのパラメーターをオブジェクトとして指定する方法はありますか?私の場合は次のようになります。
私はこれがそれを行う方法ではないことを知っていますが、それは私が学びたいことです.
ありがとう、シナン。