我想更新类型为&str
的变量输入。如何使内部函数返回&str
而不是Cow
?
这可能不是语言的问题,而是正则表达式创建工具的问题。是否有更简单直接的工具可用?
fn transform_the_expression() {
fn create_formula<'t>(input: &'t str, re: Regex) -> std::borrow::Cow<'t, str> {
let changed_string = re.replace(input, "1");
return changed_string;
}
let mut input = "(a+(b*c))";
use regex::Regex;
let re = Regex::new(r"\([\w\d][/*+-^][\w\d]\)").unwrap();
println!("input = {:?}", input);
input = create_formula(input, re);
println!("input = {:?}", input);
}
Cow
来获取引用。 - ljedrzinput = create_formula(input, re);
能够正常工作。 - Matthieu M.