如何在 Rust 中将 String 转换为 &'static str?
大家好,我刚开始学习 Rust,已经遇到了与 lifetimes 相关的问题。我有一个返回 &'static str 的函数,但我从用户输入(通过 stdin)或其他动态操作中获取 String。如何将普通的 String 转换为 &'static str?
以下是一个无法编译的示例代码:
```rust
fn get_static_string(input: String) -> &'static str {
&input
}
fn main() {
let my_string = String::from("hello");
let static_str = get_static_string(my_string);
println!("{}", static_str);
}
```
编译器报错:`cannot return reference to local variable 'input'`。我理解这是因为 `input` 在函数退出后会被销毁,但我需要返回 &'static str。如何解决这个问题?是否有某个 trait 或函数可以将普通字符串“转换”为静态字符串?我听说过 `Box::leak`,但不确定这是否是正确的做法。