小编B. *_*ang的帖子

关于Rust HashMap和String借用的困惑

该程序接受整数N,后跟N行,包含由空格分隔的两个字符串.我想将这些行放入HashMap使用第一个字符串作为键,第二个字符串作为值:

use std::collections::HashMap;
use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input)
        .expect("unable to read line");
    let desc_num: u32 = match input.trim().parse() {
        Ok(num) => num,
        Err(_) => panic!("unable to parse")
    };

    let mut map = HashMap::<&str, &str>::new();
    for _ in 0..desc_num {
        input.clear();
        io::stdin().read_line(&mut input)
            .expect("unable to read line");
        let data = input.split_whitespace().collect::<Vec<&str>>();
        println!("{:?}", data);
        // map.insert(data[0], data[1]);
    }
}
Run Code Online (Sandbox Code Playgroud)

该计划按预期工作:

3
a 1
["a", "1"]
b 2
["b", "2"]
c 3
["c", "3"] …
Run Code Online (Sandbox Code Playgroud)

hashmap rust borrowing

2
推荐指数
1
解决办法
726
查看次数

标签 统计

borrowing ×1

hashmap ×1

rust ×1