如何创建全局HashMap?

时间:2019-06-19 21:16:19

标签: rust

我在文件的开头创建了一个静态可变的HashMap,希望将其用作全局变量,但是除了“静态变量是全局变量”之外,我什么都没有找到。我有可能根本不应该使用全局HashMap来解决此问题。如果是这样,您会推荐什么?

use std::env;
use std::fs;
use std::collections::HashMap;

static mut encode_hash: HashMap<i32, char> = HashMap::new();

fn main() {
    let mut change: Vec<i32> = Vec::new();

    encode_hash.insert(1, 'a');
    encode_hash.insert(2, 'b');
    encode_hash.insert(3, 'c');

    change.push(1);
    change.push(2);

    for key in change {
        encode_hash.remove(&key);
    }

}

当我尝试构建时,出现此错误:

error[E0015]: calls in statics are limited to tuple structs and tuple variants
 --> src\main.rs:5:46
  |
5 | static mut encode_hash: HashMap<i32, char> = HashMap::new();
  |                                              ^^^^^^^^^^^^^^
  |

我现在意识到我应该只在HashMap中创建main,然后将对HashMap的引用传递到我的辅助函数中。

0 个答案:

没有答案