2
私はオブジェクト(構造体)のリストをスキャンする検索機能を持つgoコマンドラインアプリケーションを持っています。私は多分、私が行うことができます検索機能を呼び出し、すなわちだけではなくgoアプリケーションで評価される式を渡す?
mycmd search bob
のことができるようにしたい:
mycmd search 'o.Name() == "bob"'
mycmd search 'len(o.PhoneNumbers()) > 1'
mycmd search 'strings.Index(o.Name(), "bob") >= 0'
があなたのgo
にループ内で、このような表現を処理することが可能ですコード?これが不可能な場合は、私自身の表現言語/評価者を作成せずに、GOでこれにアプローチする最も簡単で最も標準的な方法は何ですか?
(私はこれはそれについて考えるための正しい方法であればしかし、私はわからないんだけど、私たちはgo-v8
とgolua
のようなものを持って見ることができますか?)
注:その個人的なスクリプト、セキュリティ上の懸念がされています範囲外。
うん...これはちょうどうまくいくかもしれません。私はいくつかの考えが必要です。 – Jacob
これは、必要な表現がやや単純な場合の優れた解決策だと思います。これはいくつかの問題の答えかもしれません。しかし、テンプレート言語は単純な比較文以上のものをサポートしていません。 (文字列の操作などはできません) – Jacob
@Jacobより複雑なものについては、カスタム関数をテンプレートコンテキストに挿入することができます。 – TheHippo