如何将String转换为&'static str在Rust中:完整指南
大家好!我是Rust新手,在处理字符串时遇到了问题。我需要将一个`String`的所有权传递给一个期望`&'static str`的函数。以下是一个无法编译的示例代码:
```rust
fn process_static(s: &'static str) {
println!("Static string: {}", s);
}
fn main() {
let my_string = String::from("Hello, world!");
// 错误:expected &'static str, found String
process_static(&my_string);
}
```
编译器提示:"`my_string` does not live long enough"。我理解`&'static str`是贯穿整个程序生命周期的字符串,而`String`是动态字符串,可能被释放。但我该如何将`String`的内容传递给需要`&'static str`的函数呢?
我尝试过使用`as_str()`、`to_string()`,甚至尝试了`Box::leak`,但不确定是否正确。也许有更简单的方法?或者我需要改变架构?
请告诉我如何正确解决这个问题。