私は表現木の概念を完全に理解していますが、それらが有用な状況を見つけようとしています。式ツリーを適用できる特定のインスタンスはありますか?それとも、コードのトランスポートメカニズムとしてのみ役立つのでしょうか?私はここで何かを逃しているように感じる。ありがとう!表現木が役に立ついくつかの例は何ですか?
11
A
答えて
6
それともコードのためのトランスポート・メカニズムとしてのみ有用であるだろうか?
コードの実行メカニズムとしては役に立ちます。このコードはです。 interpreter patternを使用すると、表現木を直接解釈することができます。これは非常に簡単で実装が速いので便利です。このような通訳はどこにでもあり、何かを「解釈」していないような場合でも使用されます。ネストされた構造体を印刷する。
6
いくつかの単体テスト・モッキング・フレームワークは、強く型付けされた期待値/検証を設定するために、式ツリーを使用します。つまり、式は実際には実行されませんが、式自体が興味深い情報を保持します。式ツリーのない代替は
myMock.Verify("SomeMethod", someObject) // we've lost the strong typing
4
式ツリーは、関数ロジックにアクセスして何らかの方法で変更または再適用する必要がある場合に便利です。 SQLへ
LINQのが良い例です:
//a linq to sql statement
var recs (
from rec in LinqDataContext.Table
where rec.IntField > 5
select rec);
我々は式ツリーを持っていなかった場合は、この文は、すべてのレコードを返し、その後、それぞれにC#のロジックを適用する必要があります。
--SQL statment executed
select *
from [table]
where [table].[IntField] > 5
:
where rec.IntField > 5
はSQLに解析することができ、式ツリーで
関連する問題
- 1. コントローラでは何が役に立つのですか?
- 2. 正規表現を作成するのに役立つ
- 3. 正規表現を構築するのに役立つ
- 4. MVVMとは何ですか?どのように役立つのですか?
- 5. ファイルをダウンロードするのに役立つ良いクローラーは何ですか
- 6. Javaのページを掻き集めるのに役立ついくつか
- 7. 順序木と根木の違いは何ですか? - 例
- 8. パレットタイプのモデリングに役立つ
- 9. GLibのHashTablesはどのように役立つのですか?
- 10. .NETで汎用プロパティが役立つと思いますか?
- 11. 文書をスキャンする際に役立つAPIは何ですか?
- 12. エクセル - 役立つナッジ
- 13. インタフェースはTypescript(アーキテクチャ上の発言)に役立つのですか?
- 14. VOIDコードがグロスペイメントで働くのに役立つ
- 15. フォームを埋めるのに役立つ青い強調表示された単語とは何ですか?
- 16. ゾンビはObjective-C++に役立つのですか?
- 17. スカラースクリプトに役立つリソース
- 18. コードプレゼンテーションに役立つEclipseプラグイン
- 19. デッドロック回避とは何ですか、いくつかの例は何ですか?
- 20. Webデベロッパー/マネージャーとして役立つXMPPの用途は何ですか?
- 21. リストの作成に役立つ必要があります。いくつかの除外項目の使い方
- 22. WSDLを学ぶときに最も役立つ本は何でしたか?
- 23. MySQLデータベースのコンテンツをidで表示するのに役立つ
- 24. PHPで役に立つエラーメッセージを返す
- 25. は、このWCF MVCシナリオで役立つNServiceBusですか?
- 26. なぜ `yield self`が役立つのですか?
- 27. 既存のGUIでうまく動作し、変換に役立つJava IDEは何ですか?
- 28. アクションバーの実装に役立つものはありますか?
- 29. PrintDocumentの作成に役立つツールはありますか?
- 30. アルゴリズムをコンパイルするのに役立つ