bilibili / gengine

Other
1.96k stars 272 forks source link

构建规则后,怎么获取该规则内所需的变量列表? #5

Closed bravesmiles closed 3 years ago

bravesmiles commented 3 years ago

例如:核心DSL代码为:AND(age > 25, lengthOfService > 5, LEN(name) > 1),AND是内置函数。 执行 ruleBuilder.BuildRuleFromString(rule)后,怎么获取规则所需变量?期望可以拿到变量列表,如果内提供变量类型更好。比如:{age: int, lengthOfService: int, name: string}

rencalo770 commented 3 years ago

直接给用户返回规则内的变量暂未支持;这个功能好实现,但得考虑到一个现实: 规则内的变量只是一个引用标识符,也就是说,用户可以在一个规则内多次重复使用同一个变量指向不同类型的具体值,变量最终的具体值由最后一个指向的具体值决定,这个可能会误导用户。

bravesmiles commented 3 years ago

直接给用户返回规则内的变量暂未支持;这个功能好实现,但得考虑到一个现实: 规则内的变量只是一个引用标识符,也就是说,用户可以在一个规则内多次重复使用同一个变量指向不同类型的具体值,变量最终的具体值由最后一个指向的具体值决定,这个可能会误导用户。

嗯,我觉得可以先提供一个返回规则内的变量的功能,说明具体限制。后者的确很难解决,但正常用户应该也不会使用同一个变量指向不同类型的具体值

Freamerhxl commented 3 years ago

同求这个功能

rencalo770 commented 3 years ago

我想想怎么实现,最近在实现DAG执行模式