我需要编写一个函数,以字符串作为输入,通过换行符对其进行拆分,并修剪拆分的每个条目中的所有多余换行符。我想出了以下办法:
fn split_and_trim(text: &String) {
let lines - text.split('\n').map(|l| String::from(l).trim());
println!("{:?}", lines)
}
但此代码返回以下错误:
6 | let lines = text.map(|l| String::from(l).trim());
| ---------------^^^^^^^
| |
| returns a reference to data owned by the current function
| temporary value created here
尝试以以下方式重写它:
let lines: Vec<String> = text.split('\n').map(|l| String::from(l).trim()).collect();
返回另一个错误:
value of type `Vec<String>` cannot be built from `std::iter::Iterator<Item=&str>`
实现这一目标的正确方法是什么(拆分字符串并修剪每个元素)?提前感谢!