为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 应用程序中传递要评估的表达式?

在 Go 应用程序中传递要评估的表达式?

Go
千万里不及你 2022-03-07 15:54:10
我有一个 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-v8and的东西golua,但是我不确定这是否是正确的思考方式?)注意:这是一个个人脚本,安全问题超出了范围。
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

也许您可以使用该text.template软件包来评估您的输入。
稍后解析它的输出以获取输入表达式的结果。

这是一些 Go 构建工具所做的。例如docker inspect,使用它来格式化其输出。


查看完整回答
反对 回复 2022-03-07
  • 1 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号