Goexpr provides support for evaluating expressions with parameters, arimethetic, logical, and string operations.
- basic expression: 1 > 0
- parameterized expression: x > 0
- nested parameterized expression: a.b > 0
- arithmetic expression: (x * y / 100) >= 50
- string expression: real == "expected"
- float64 expression: (part / total) * 100
When used with Go modules, use the following import path:
go get github.com/leonests/goexpr
Example 1: Simple Usage Without Parameters
import "github.com/leonests/goexpr"
expr, err := goexpr.NewExpr("1 > 0")
result, err := expr.Eval(nil)
// result is true.
Example 2: Simple Usage With Parameters
import "github.com/leonests/goexpr"
expr, err := goexpr.NewExpr(`(x * y / 100) >= 50`)
param := map[string]interface{}{ "x": 100, "y": 50}
result, err := expr.Eval(parametes)
// result is true.