小编hob*_*mer的帖子

将 Vec<u64> 转为 Vec<(&str, u64)> 用于 tui::BarChart 数据

我怎样才能把 aVec<u64>变成 a Vec<(&str, u64)>,使得前者的索引嵌入到str后者的部分中?

例如,[4, 9, 3]应该变成[("0", 4), ("1", 9), ("2", 3)].

我想这样做的原因是因为我想使用来自 TUI 的条形图绘制我的向量的条形图,这需要类似的类型。

我尝试了一些明显的事情,例如循环和推送:

fn main() {
    let my_vec: Vec<u64> = vec![4, 9, 3];
    let mut result: Vec<(&str, u64)> = Vec::new();
    for (k, v) in my_vec.iter().enumerate() {
        result.push((&k.to_string(), *v));
    }

    assert_eq!(result, [("0", 4), ("1", 9), ("2", 3)]);
}
Run Code Online (Sandbox Code Playgroud)
error[E0716]: temporary value dropped while borrowed
 --> src/main.rs:5:23
  |
5 |         result.push((&k.to_string(), *v));
  |                       ^^^^^^^^^^^^^      - …
Run Code Online (Sandbox Code Playgroud)

rust

17
推荐指数
2
解决办法
326
查看次数

标签 统计

rust ×1