pub fn include_suffix(mut suffixs: Vec<&str>)->Vec<&str>{
for suffix in suffixs.iter_mut() {
*suffix = format!("{}{}","*",suffix).as_str();
}
suffixs
}
上面在VSCode中报
temporary value dropped while borrowed
creates a temporary which is freed while still in use
等
不知道是使用 format!
要注意的什么问题
1
共 3 条评论, 1 页
评论区
写评论最简洁的方法就是改一下函数的返回类型:
--
👇
munpf: 报错的意思是临时变量被销毁时仍被借用着。
format!()返回的是一个String,用as_str()会返回&str,这个引用指向format!()生成的临时String变量,在函数返回后,这个临时变量被销毁,&str指向了一个无效的内存地址,所以不能通过编译。你这个代码做的就是返回了临时变量的内存地址,你应该直接返回String,而不是&str。
能显示一下修改后代码吗
报错的意思是临时变量被销毁时仍被借用着。
format!()返回的是一个String,用as_str()会返回&str,这个引用指向format!()生成的临时String变量,在函数返回后,这个临时变量被销毁,&str指向了一个无效的内存地址,所以不能通过编译。你这个代码做的就是返回了临时变量的内存地址,你应该直接返回String,而不是&str。