我在文件的开头创建了一个静态可变的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
的引用传递到我的辅助函数中。