String 如何将字符串作为表达式计算,以便在Rust中对字符串执行算术运算,以便在用户键入3+;1在控制台上,它给出4

String 如何将字符串作为表达式计算,以便在Rust中对字符串执行算术运算,以便在用户键入3+;1在控制台上,它给出4,string,rust,calculator,arithmetic-expressions,String,Rust,Calculator,Arithmetic Expressions,我试图用Rust编程语言制作一个计算器。计算器执行基本的算术运算,如加法、sutract、指数等。对我来说,最具挑战性的部分是用户输入是一个字符串,我希望计算器足够智能,以便当用户在控制台上键入3+1时,它将返回4或2^3=8。我可以将字符串解析为整数或任何其他数据类型,但如何将“+”转换为算术运算符?您可以使用名为meval的板条箱,只需将字符串传递给eval_str函数即可 use meval::eval_str; fn main() { let r = meval::eval_s

我试图用Rust编程语言制作一个计算器。计算器执行基本的算术运算,如加法、sutract、指数等。对我来说,最具挑战性的部分是用户输入是一个
字符串,我希望计算器足够智能,以便当用户在控制台上键入3+1时,它将返回4或2^3=8。我可以将
字符串
解析为整数或任何其他数据类型,但如何将“+”转换为算术运算符?

您可以使用名为meval的板条箱,只需将字符串传递给
eval_str
函数即可

use meval::eval_str;

fn main() {
    let r = meval::eval_str("1 + 2").unwrap();
    println!("1 + 2 = {}", r);
}

您可以使用名为meval的板条箱,只需将字符串传递给
eval\u str
函数即可

use meval::eval_str;

fn main() {
    let r = meval::eval_str("1 + 2").unwrap();
    println!("1 + 2 = {}", r);
}

欢迎来到堆栈溢出!这并不能(我不认为)直接回答您的问题,但您可能想看看解析算术表达式的方法,如
3+1
。感谢这一方法为问题提供了一个逻辑。欢迎使用堆栈溢出!这并不能(我不认为)直接回答您的问题,但您可能希望了解解析算术表达式的方法,如
3+1
。感谢这一点,这确实有助于为问题制定逻辑。