【发布时间】:2016-07-28 19:29:02
【问题描述】:
我有一个字符串格式的布尔表达式,例如:
name := "Fred"
type := "Person"
我想将此表达式评估为真或假。
exp := "(name == Fred) && (type == Person)"
最终,我希望能够执行条件语句,例如:
if (exp) {
...
}
但是,根据研究,这并不是 Go 开箱即用的支持。我已经看到有关使用 AST 解析和评估的建议。但是,我还很陌生,尤其是 AST,因此不知道该怎么做。有人可以就我如何评估字符串布尔表达式提供任何指导吗?我还没有遇到任何完全支持这一点的软件包。
【问题讨论】:
-
o.õ 这很臭,你为什么需要字符串
-
我有一个布尔表达式作为 JSON 存储在一个文件中。我解析 JSON 以创建我的字符串布尔表达式。一旦我有了表达式,我就需要对其进行评估。
-
您的“布尔表达式”是否保证是正确的 Go 语法? (该示例不是有效的 Go,因此您不能直接将其解析为 Go)
-
是的,让我们假设它是。我正在尝试了解执行此类操作所涉及的机制。