1 个不稳定发布版本
0.0.1 | 2023年9月14日 |
---|
#9 in #解析工具
91KB
2K SLoC
此库提供了在运行时评估数学表达式的方法。
功能开关
std
(默认): 启用使用 std 库libm
: 启用使用来自 libm 的数学函数,对于 no_std 软件包和非标准函数很有用
示例 1
use evaluatorrs::eval;
use evaluatorrs::formulas::ParserError;
fn evaluate() -> Result<(), ParserError> {
let expression = "1 + 2";
let result = eval(expression)?;
debug_assert_eq!(result, 3.0);
Ok(())
}
示例 2
use evaluatorrs::formulas::{Evaluate, RootFormula};
use evaluatorrs::function_stores::EmptyFunctionStore;
use evaluatorrs::variable_stores::{HashMapVariableStore, SetVariable};
fn example() -> Result<(), ParserError> {
let formula = RootFormula::parse("a + b", &EmptyFunctionStore)?;
let mut variable_store = HashMapVariableStore::new();
variable_store.set("a", RootFormula::parse("1", &EmptyFunctionStore)?);
variable_store.set("b", RootFormula::parse("10", &EmptyFunctionStore)?);
let evaluated = formula.eval(&variable_store);
assert!(evaluated.is_ok());
let evaluated = evaluated?;
assert_eq!(evaluated, 11.0);
}
依赖项
~105KB