2 个版本

0.1.1 2023年7月4日
0.1.0 2023年7月4日

1429 in 数学

MIT 许可证

31KB
530

crates.io docs.rs

我的小评估

我的小评估是一个轻量级的 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

无运行时依赖