我在当前的工作中在Java和C++之间来回切换,因此我倾向于在Java中使用'bool'而不是'boolean'.我在Emacs中编程,它在声明中突出显示'bool'与任何其他类型相同,所以我不倾向于在编译时捕获错误.
有没有办法让java模式为我突出'bool',以便我可以在编写代码时捕获错误?
我今年将尝试在Rust中使用Code Advent,作为学习语言的一种方式。我已经将输入(从第7天开始)解析为以下结构:
struct Process {
name: String,
weight: u32,
children: Vec<String>,
parent: Option<String>
}
Run Code Online (Sandbox Code Playgroud)
这些存储在中HashMap<String, Process>。现在,我要根据在父级的“子级”向量中找到的内容,迭代地图中的值并更新父级值。
什么是行不通的
for p in self.processes.values() {
for child_name in p.children {
let mut child = self.processes.get_mut(child_name).expect("Child not found.");
child.parent = p.name;
}
}
Run Code Online (Sandbox Code Playgroud)
我不能同时具有对HashMap(self.processes)和可变变量的引用,也不能具有两个可变引用。
那么,在Rust中最惯用的方法是什么?我可以看到两个选项:
还有第三种选择吗?