给定以下代码(不编译):
fn main() {
let mut v = vec!();
{
let name = "Bob the Builder".to_string();
v.push(&name);
}
for m in &v{
println!("{}", m);
}
}
我创建了一个绑定到 RustString
类型的变量,它将超出第一组花括号的范围。有没有办法以某种方式移动字符串的所有权,以便向量本身拥有它?
这是一个任意示例,但我只是想了解这个概念是否可行。
我已经知道,如果我使用字符串文字,这将被视为一个静态字符串,它将在整个应用程序的生命周期中存在,因此这段代码可以编译,但我只是想了解 Rust 中的集合是否可以拥有数据. 我知道 Rust 不是 Objective-C,但 Objective-C 具有能够保留数据的集合。