从 Rust 函数返回新字符串的正确方法
你好!我是 Rust 新手,正在尝试理解如何从函数返回字符串。在其他语言中,我只需创建字符串并返回它,但在 Rust 中,由于所有权系统,情况更复杂。
我有一个函数,它应该接收一个字符串,为其添加前缀,并返回一个新字符串。以下是我的代码,但它不工作:
```rust
fn add_prefix(s: &str) -> &str {
let result = String::from("prefix_") + s;
&result
}
```
编译器报错:`cannot return reference to local variable 'result'`。我明白 `result` 在函数退出后被销毁,但如何正确返回新字符串呢?
我尝试了不同的方法:
1. 返回 `String` 而不是 `&str`——但这样在调用代码中需要重新借用字符串。
2. 使用 `to_string()`——但这似乎多余。
3. 尝试返回 `&'static str`——但这不适用于动态字符串。
请告诉我,在 Rust 中从函数返回新字符串的惯用方法是什么?我想理解正确的做法。