Avatar ·

如何将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`,但不确定是否正确。也许有更简单的方法?或者我需要改变架构? 请告诉我如何正确解决这个问题。