Avatar ·

如何在 Rust 中将 Vec<String> 转换为 Vec<&str>?

大家好!我开始学习 Rust 并遇到了类型转换的问题。我有一个 `Vec`,需要将其传递给一个期望 `Vec<&str>` 的函数。我尝试直接转换类型,但编译器报错。 这是我的代码: ```rust fn process_strings(strings: Vec<&str>) { for s in strings { println!("{}", s); } } fn main() { let owned_strings: Vec = vec!["hello".to_string(), "world".to_string()]; // 尝试将 Vec 传递给期望 Vec<&str> 的函数 process_strings(owned_strings); // 错误! } ``` 编译器报错:`expected Vec<&str>, found Vec`。我知道 `String` 和 `&str` 是不同的类型,但如何将一个向量转换为另一个?我尝试使用 `.iter().collect()`,但得到的是 `Vec<&String>` 而不是 `Vec<&str>`。也许需要借用,或者 Rust 中有某种惯用方法? 请告诉我如何正确实现,最好附上示例。