2013-12-24 10 views
5

適切なDart構文を使用して文字列を取り、それを呼び出し可能なダーツ関数に変換したいと考えています。それを行う方法はありますか?動的に関数を生成する方法は?

例えば、私は、

void test() { print("testing!"); } 

を文字列を受け取ることになる。そして呼び出し可能な関数にそれを回します。私がこれをやりたいのは、他のサーバーからダーツファイルをダウンロードしてその機能を呼び出すことができるからです。ダーツよくある質問パー

+0

関連性がありますか? http://stackoverflow.com/questions/13293345/dynamic-class-method-invocation-in-dart –

+1

@ user1956570 https://www.dartlang.org/ - すばらしい、それらの検索エンジン – user2864740

答えて

2

それが将来的にかもしれないが、https://www.dartlang.org/support/faq.html#q-is-it-really-a-dynamic-language-if-it-doesnt-have-eval-or-adding-fields-to-a-value-at-run-time

ダーツは、現在、evalの()関数で、また任意の文字列のサポートランタイムのコンパイルを持っていません。

だから、あなたがやりたいことをするには、あなた自身のVMをダーツ内で作る必要があります。

+0

ありがとうございました。それは残念ですが、少なくとも私は知っています。 – Salgat

+1

ダーツがどんな意味で「動的」であるかわからないFAQに同意します...そして、彼らはデザインに対するjavascriptの重要性を強調し、evalはかなり重要です。 – Bandrami

+1

これを覚えておいてほしいのは、 'eval'のようなものが不足しているということです。これは、そうでなければ、より良い最適化を可能にします。 –

1

ターゲットプラットフォームによって異なります。スタンドアロンのDart VMをターゲットにしている場合は、既に使用可能です。 SDKツールPubがそれをやっています。

gernatedアプリケーションに埋め込まれた機能を提供するアプリケーション内部Webサーバーをセットアップできます。アプリケーションを追加の分離にロードし、メッセージ分離を使用してその分離と通信することができます。このアプローチを使用して、アプリケーション用のプラグインを作成することもできます。

しかし、これを自分で実装するには時間がかかることがあります。数式やその他の簡略化された部分を解析する場合は、利用可能なPubパッケージ(parsersまたはmath_exprerssions)を調べることができます。

0

JavaScriptを作成してeval()を使用し、JS-interopを使用します。

関連する問題