【发布时间】:2022-11-18 02:44:06
【问题描述】:
这是我原来的简化代码,我想使用全局变量而不是单独函数中的变量。生锈的建议方法是什么? 顺便说一句,我试过使用全局参数或更改函数参数,这对初学者来说都是噩梦。很难解决生命周期和变量类型转换问题。
use std::collections::BTreeMap;
// Trying but failed
// let mut guess_number = BTreeMap::new();
// | ^^^ expected item
fn read_csv() {
let mut guess_number = BTreeMap::new();
let lines = ["Tom,4", "John,6"];
for line in lines.iter() {
let split = line.split(",");
let vec: Vec<_> = split.collect();
println!("{} {:?}", line, vec);
let number: u16 = vec[1].trim().parse().unwrap();
guess_number.insert(vec[0], number);
}
for (k, v) in guess_number {
println!("{} {:?}", k, v);
}
}
fn main() {
let mut guess_number = BTreeMap::new();
guess_number.insert("Tom", 3);
guess_number.insert("John", 7);
if guess_number.contains_key("John") {
println!("John's number={:?}", guess_number.get("John").unwrap());
}
read_csv();
}
【问题讨论】:
-
将 btree 作为参数传递?
-
这回答了你的问题了吗? How do I create a global, mutable singleton?
标签: rust