Avatar ·

从 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 中从函数返回新字符串的惯用方法是什么?我想理解正确的做法。