我们想用 Go 来实现我们的业务逻辑,但是我们找不到 Go 的规则引擎/推理引擎的任何好的实现。有没有人有任何经验或建议?
问问题
10350 次
4 回答
1
据我所知,最好的例子是在许多标准库中采用的“表驱动”单元测试方法。例如,fmttests。
除此之外,Go 是一种强大的、富有表现力的语言。你真正需要什么?Go 中有许多状态机实现的示例,以及许多具有声明性 JSON 配置的 Web 框架。
如果您的意思是正确的逻辑编程,那么目前还没有流行的 Go 库。
于 2013-04-15T13:48:40.607 回答
1
如果您熟悉 JBoss Drools,那么现在 Golang 中也有类似的东西。看看这个https://github.com/newm4n/grool
它具有类似于 Drools DRL 的 DSL,称为 GRL。
rule SlowDown "When testcar is slowing down we keep decreasing the speed." salience 10 {
when
TestCar.SpeedUp == false && TestCar.Speed > 0
then
TestCar.Speed = TestCar.Speed - TestCar.SpeedIncrement;
DistanceRecord.TotalDistance = DistanceRecord.TotalDistance + TestCar.Speed;
}
于 2019-08-13T09:12:56.400 回答
0
看看https://github.com/antonmedv/expr
它可以解析下一个表达式:
# Get the special price if
user.Group in ["good_customers", "collaborator"]
# Promote article to the homepage when
len(article.Comments) > 100 and article.Category not in ["misc"]
# Send an alert when
product.Stock < 15
键入检查并评估。
于 2018-08-10T11:05:30.980 回答