問題タブ [dynamic-languages]

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.

0 投票する
3 に答える
1839 参照

c# - C# で動的言語のように、名前 (文字列) でインスタンス変数にアクセスする

次のような C# コードがあります。

私はこのようなものが欲しい:

それを行う簡単な方法はありますか?文字列でクラスの名前を指定すると、System.Activator を使用してインスタンス化できることを知っています。これは似ているので、期待していました....

0 投票する
3 に答える
3680 参照

c# - C#:文字列変数に格納されている関数を実行します

文字列から任意のメソッドを実行するシンプルで高速な関数をC#で作成することは可能ですか?たとえば、MyString = "MessageBox.Show(" Some Message ")"を設定してからExecuteString(MyString)を呼び出すと、メッセージボックスに「SomeMessage」が表示されます。

(上記のコードで何らかのエラーが発生した可能性があります。C#はまだわかりません。特定のプロジェクトに適しているかどうかを評価しようとしています。)

0 投票する
2 に答える
661 参照

data-structures - キャッシュを無視するデータ構造と動的言語 - 効果的?

私は最近、補助バッファー ヒープのようなキャッシュを無視するデータ構造について読んでいます。これらのデータ構造は、最近アクセスされた要素をキャッシュ メモリに保持することで機能するため、その後のアクセスも高速になります。

これらのデータ構造のほとんどは、C/C++ などの低レベル言語で実装されています。これらのデータ構造を Python のような動的言語に移植する価値はありますか? それとも、仮想マシン上で実行するオーバーヘッドがこれらのデータ構造のパフォーマンス上の利点をすべて台無しにしますか? 後者のようですが、実際に使った経験のある方に聞いてみようと思いました。

0 投票する
1 に答える
167 参照

java - Da Vinci Machineをどのように実行しますか?

Da Vinci MachineのIDEサポートはありますか?

どのようにインストールして操作しますか?

0 投票する
2 に答える
343 参照

java - 標準のJDKでinvokedynamicが利用できるようになるのはいつですか。

私はJavaの上で動的言語を使い始めたいと思っています。

これが標準のJDKの一部になるまでどのくらいかかりますか?

0 投票する
9 に答える
4959 参照

performance - 動的言語は静的言語より遅いですか?

たとえば、ランタイムが一貫して型をチェックする必要があるため、動的言語は静的言語よりも遅いですか?

0 投票する
3 に答える
1060 参照

java - 最も近い方法を呼び出す

小さな ScriptEngine の開発の一環として、私は反射的に Java メソッドを呼び出します。スクリプト エンジンによる呼び出しにより、オブジェクトにメソッド名と引数の配列が与えられます。メソッドを呼び出すために、 Class.getMethod(name, argument types) への呼び出しで解決しようとしました。
ただし、これは、引数のクラスとメソッドによって期待されるクラスが同じ場合にのみ機能します。

正しいメソッドを取得する「簡単な」方法があるかどうか、可能であれば引数の型に最も近い方法があるかどうか、またはこれを自分で実装する必要があるかどうかを知りたいです。

最も近い適合は次のとおりです。

更新:
必要なものを明確にするために: スクリプト エンジンは、自由時間に書いている小さなプロジェクトなので、従わなければならない厳格な規則はありません。したがって、Javaコンパイラがコンパイル時にオブジェクトの静的型ではなく動的型のみでメソッドを選択するのと同じ方法で、エンジンから呼び出されたメソッドを選択するとうまくいくと思いました.(オートボクシングの有無にかかわらず)
これは私が最初に望んだことですClass.getMethod() が解決します。ただし、Class.getMethod() には、メソッドが宣言する引数の型とまったく同じクラスが必要です。サブクラスを使用すると、no such method Exception が発生します。これは正当な理由で発生する可能性がありますが、どの引数タイプが適合するかを事前に知らないため、メソッドが役に立たなくなります。
別の方法は、Class.getMethods() を呼び出して、返された配列を反復処理し、適切なメソッドを見つけようとすることです。ただし、最初に見つけた「良い」方法を取りたくない場合、これは複雑になるため、少なくとも処理する既存のソリューションがあることを望みました。

  • 最も近い適合: arg.getClass() == サブクラスおよびメソッド m(Superclass)、m(Subclass) の場合、m(Subclass) を呼び出します
  • 可変引数: System.out.printf(String ,String...)

オートボクシングのサポートもいいでしょう。
呼び出しを解決できない場合、例外がスローされる可能性があります ( ma(String,Object), ma(Object, String), args= String,String)
(ここまで作成した場合は、時間を割いて読んでくれてありがとう:- )))

0 投票する
2 に答える
515 参照

c# - スタックトレースを介してローカルにアクセスするには? (動的スコープの模倣)

バックグラウンド

実行時に C# コードをコンパイルすることはできますが、生成されたコードを現在のスコープに含めて実行することはできません。代わりに、すべての変数を明示的なパラメーターとして渡す必要があります。

Python のような動的プログラミング言語と比較すると、eval(この例のように) の完全な動作を真に再現することはできません。

質問

したがって、私の質問は (実際に役立つかどうかに関係なく ;)) 、リフレクションを使用して .NET で動的スコープを模倣できるかどうかです。

.NET はDiagnostics.StackTrace呼び出しメソッドを検査できるクラスを提供するので、この質問は次のように要約されます: (どのように) 呼び出しメソッドのローカルに確実にアクセスできますか?

スタック トレースは、メモリ オフセットを計算するのに十分な情報を提供してくれますか、それともマネージ コードではそのようなことは禁止されていますか?

そのようなコードは何とか可能ですか?

0 投票する
6 に答える
1208 参照

python - すべての動的言語には循環インポートの問題がありますか?

次のPythonコードの場合:

first.py

second.py

ファイルを作成し、シェルから以下を実行した後:

エラーが発生します:ImportError: cannot import name Second

Rubyのような他の動的言語にはこの種の問題がありますか?私が尋ねている理由は、2つのモデルが相互に依存しているDjangoプロジェクトでこの問題が発生しているためです。考えられる解決策は、プロジェクトを再設計するか、オンデマンドでインポートすることです。他の動的言語の開発者がこの問題を経験したかどうかを知りたいだけです。