proxy.golang.org : github.com/Expr-lang/expr
Package expr is an engine that can evaluate expressions. You can pass variables into the expression, which can be of any valid Go type (including structs): Expr uses reflection for accessing and iterating passed data. For example you can pass nested structures without any modification or preparation: You can also pass functions into the expression: All methods of passed struct also available as functions inside expr: If you planning to execute some expression lots times, it's good to parse it first and only one time: Expr package support strict parse mode in which some type checks performed during parsing. To parse expression in strict mode, define all of used variables: Parse function will check used variables, accessed filed, logical operators and some other type checks. If you try to use some undeclared variables, or access unknown field, an error will be returned during paring: Also it's possible to define all used variables and functions using expr.Env and struct: Or with map: Compiled ast can be compiled back to string expression using stringer fmt.Stringer interface: Inside Expr engine there is no distinguish between int, uint and float types (as in JavaScript). All numbers inside Expr engine represented as `float64`. You should remember about it if you use any of binary operators (`+`, `-`, `/`, `*`, etc). Otherwise type remain unchanged.
Registry
-
Source
- Documentation
- JSON
purl: pkg:golang/github.com/%21expr-lang/expr
Keywords:
bytecode
, configuration-language
, engine
, evaluator
, expr
, expression
, expression-evaluator
, expression-language
, go
, golang
, rule-engine
License: MIT
Latest release: 13 days ago
First release: almost 7 years ago
Namespace: github.com/Expr-lang
Stars: 5,680 on GitHub
Forks: 370 on GitHub
Total Commits: 754
Committers: 59
Average commits per author: 12.78
Development Distribution Score (DDS): 0.102
More commit stats: commits.ecosyste.ms
See more repository details: repos.ecosyste.ms
Funding links: https://github.com/sponsors/antonmedv
Last synced: 6 days ago