首页 > 解决方案 > 如何创建和返回字符串向量

问题描述

我正在尝试在 Rust 中创建一个返回字符串向量的函数。这是我到目前为止所拥有的:

fn letters() -> Vec<String> {
    let mut v = Vec::new();
    v.push("a");
    v.push("b");
    v
}
fn main() {
    println!("{:?}", letters());
}

这是错误:

error[E0308]: mismatched types
 --> src/main.rs:5:5
  |
1 | fn letters() -> Vec<String> {
  |                 ----------- expected `Vec<String>` because of return type
...
5 |     v
  |     ^ expected struct `String`, found `&str`
  |
  = note: expected struct `Vec<String>`
             found struct `Vec<&str>`

我一直在为此苦苦挣扎。似乎我可以解决问题的唯一方法是以不同的方式声明向量,但我需要按照我的方式声明它。

标签: stringvectorrust

解决方案


你需要使用"a".to_string().

fn letters() -> Vec<String> {
    let mut v = Vec::new();
    v.push("a".to_string());
    v.push("b".to_string());
    v
}
fn main() {
    println!("{:?}", letters());
}

推荐阅读