适用于大多数需要逻辑表达式场景,简小有效。

支持范围

支持类型: int string
支持操作符: > < >= <= && ||
支持两个内嵌函数: in_array(1, []int{1,2,3,4}), ver_compare(x, “>”, “10.1.1”)

使用方式

engine, err := NewEngine(v.expr)
if err != nil {
	t.Error(err) 
}
result, err := engine.RunRule(v.control)

原理

使用go/ast and go/parser来解析Golang代码,生成AST树,并进行判断执行。

请点击,请Star: