2 个版本
0.1.1 | 2023年7月4日 |
---|---|
0.1.0 | 2023年7月4日 |
1429 in 数学
31KB
530 行
我的小评估
我的小评估是一个轻量级的 Rust 库,用于评估数学表达式。它提供了一种简单直观的方法,在 Rust 程序中解析和计算数学表达式。
特性
- 解析和评估数学表达式
- 支持 类型 整数 (
i32
)、浮点 (f64
) 和字符串 (String
) - 支持基本算术运算 (
+
、-
、*
、/
、%
) - 括号 用于控制运算符优先级
变量
替换
支持的运算
类型 | 类型 | + | - | * | / | % |
---|---|---|---|---|---|---|
整型 | 整型 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
整型 | 浮点型 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
整型 | 字符串 | ✔️ | ❌ | ✔️ | ❌ | ❌ |
浮点型 | 浮点型 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
浮点型 | 整型 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
浮点型 | 字符串 | ✔️ | ❌ | ❌ | ❌ | ❌ |
字符串 | 字符串 | ✔️ | ❌ | ❌ | ❌ | ❌ |
字符串 | 整型 | ✔️ | ❌ | ✔️ | ❌ | ❌ |
字符串 | 浮点型 | ✔️ | ❌ | ❌ | ❌ | ❌ |
安装
将以下行添加到您的 Cargo.toml
文件中
[dependencies]
my-little-eval = "0.1.0"
或者运行
cargo add my-little-eval
示例
查看 文档
获取更多信息!
use std::collections::HashMap;
use my_little_eval::{eval, vars_init, type_enum::Type};
let mut variables = vars_init();
// Inserting variables into the HashMap
variables.insert("x".to_string(), Type::Int(42));
variables.insert("y".to_string(), Type::Float(3.14));
// Using the `eval` function to evaluate an equation
let equation = "2 * x + y";
let result = eval(equation, Some(&variables));
assert_eq!(result, Ok(Type::from("87.14")));
Git 克隆或分支
如果您 克隆 或 分支 此 git,您可以使用包含的 main.rs 文件测试此库。它包含一个围绕它的简单 CLI Shell 包装器。
$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running `target\debug\my-little-eval.exe`
run help for instructions
运行帮助以获取说明
>>>help
help page:
Define a variable with the let keyword eg. let hallo = 2
Evaluate a term eg. ( 1 + hallo ) * 2
Quit the program with command q || quit
Print out all variables with command **vars**
Print this help page
>>>
示例
>>>let a = 5
>>>let b = 7 * 2
>>>let c = a + b
>>>c
res: i32 = 19
>>>res * c
res: i32 = 361
>>>(2 * (777 / 12))
res: i32 = 128
>>>let hallo = hi
>>>hallo * a
res: String = "hihihihihi"
>>>let foo = 7.5
>>>let bar = 3.5
>>>foo % bar
res: f64 = 0.5