searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

govaluate.NewEvaluableExpression() 表达式规则引擎简单应用

2023-05-29 03:18:37
82
0

govaluate

支持算式表达式或多个逻辑表达式,可以一次构建多次进行应用操作。从传统的if... else...中解放出来,引入规则引擎的操作

 

例子:

expression, err := govaluate.NewEvaluableExpression("condition1 > 0 || condition2 in (condition3,'name')");
 
parameters := make(map[string]interface{}, 8)
parameters["condition1"] = -1;
parameters["condition2"] = name;
parameters["condition3"] = July;
 
result, err := expression.Evaluate(parameters);
 
实际输出:
true
 

例子:

expression, err := govaluate.NewEvaluableExpression("condition1 > 0 || condition2 in (condition3,'name')");
 
parameters := make(map[string]interface{}, 8)
parameters["condition1"] = -1;
parameters["condition2"] = ZhangSan;
parameters["condition3"] = July;
 
result, err := expression.Evaluate(parameters);
 
实际输出:
false
 

govaluate除了支持in操作、还支持正则表达式

运算符支持

表达式引擎支持以下运算:
二元计算符 : + - / & | ^ * % >> <<
二元比较符 : > >= < <= == != =~ !~
逻辑操作符 : || &&
括号 : ( ) --通过括号改变优先级
数组相关 : IN 
一元计算符 : ! - ~
三元运算符 : ? :
空值聚合符: ??

0条评论
0 / 1000
魏文浩
5文章数
0粉丝数
魏文浩
5 文章 | 0 粉丝
原创

govaluate.NewEvaluableExpression() 表达式规则引擎简单应用

2023-05-29 03:18:37
82
0

govaluate

支持算式表达式或多个逻辑表达式,可以一次构建多次进行应用操作。从传统的if... else...中解放出来,引入规则引擎的操作

 

例子:

expression, err := govaluate.NewEvaluableExpression("condition1 > 0 || condition2 in (condition3,'name')");
 
parameters := make(map[string]interface{}, 8)
parameters["condition1"] = -1;
parameters["condition2"] = name;
parameters["condition3"] = July;
 
result, err := expression.Evaluate(parameters);
 
实际输出:
true
 

例子:

expression, err := govaluate.NewEvaluableExpression("condition1 > 0 || condition2 in (condition3,'name')");
 
parameters := make(map[string]interface{}, 8)
parameters["condition1"] = -1;
parameters["condition2"] = ZhangSan;
parameters["condition3"] = July;
 
result, err := expression.Evaluate(parameters);
 
实际输出:
false
 

govaluate除了支持in操作、还支持正则表达式

运算符支持

表达式引擎支持以下运算:
二元计算符 : + - / & | ^ * % >> <<
二元比较符 : > >= < <= == != =~ !~
逻辑操作符 : || &&
括号 : ( ) --通过括号改变优先级
数组相关 : IN 
一元计算符 : ! - ~
三元运算符 : ? :
空值聚合符: ??

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0