Open shaynewu opened 3 years ago
context := spel.StandardEvaluationContext{} m := make(map[string]interface{}) m["create_user"] = "wsq_uid1" m["role_id"] = 1 m["money"] = 10000 m["things_num"] = 12 m["age"] = 18 context.SetVariables(m) parser := SpelExpressionParser{} expressionString := "#create_user=='lisi' || #age>=3" valueContext := parser.ParseExpression(expressionString).GetValueContext(&context) fmt.Println("结果为:", valueContext)
${create_user == 'lisi' || age >=3}
上面的或操作都不行
非常感谢发现问题
问题已修复,依赖最新版本即可,使用
$name=='lisi' || $age>=3 或 #name=='lisi' || #age>=3
这两种方式都可以
context := spel.StandardEvaluationContext{} m := make(map[string]interface{}) m["create_user"] = "wsq_uid1" m["role_id"] = 1 m["money"] = 10000 m["things_num"] = 12 m["age"] = 18 context.SetVariables(m) parser := SpelExpressionParser{} expressionString := "#create_user=='lisi' || #age>=3" valueContext := parser.ParseExpression(expressionString).GetValueContext(&context) fmt.Println("结果为:", valueContext)