如何修复 Rust 中的 "use of moved value" 错误?
你好!我开始学习 Rust 并不断遇到 "use of moved value" 错误。下面是一个简单的例子会触发它:
```rust
fn main() {
let s = String::from("привет");
let t = s;
println!("{}", s); // 错误:use of moved value: `s`
}
```
我理解 Rust 严格跟踪所有权,但不知道如何正确地在变量和函数之间传递数据。例如,我想写一个函数,它接受一个字符串,对其进行一些操作,然后我想在 main 中再次使用这个字符串:
```rust
fn process(s: String) -> String {
// 一些处理
s
}
fn main() {
let my_string = String::from("тест");
let result = process(my_string);
println!("{}", my_string); // 又报错了!
}
```
为什么会这样?在 C++ 中,我只需通过引用传递或复制,但在这里行不通。如何正确组织代码以避免这个错误?请用例子解释什么是所有权、借用