我有一个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
的内容,但我不确定这是否是正确的思考方式?)
注意:是个人脚本,安全问题超出了范围。
答案 0 :(得分:1)
也许您可以使用text.template
套餐来评估您的输入
然后解析它的输出以获得输入表达式的结果。
这是一些Go构建工具。例如,docker inspect
使用它来格式化其输出。