小编Mar*_*ter的帖子

在Emacs中突出显示Java中使用的'bool'

我在当前的工作中在Java和C++之间来回切换,因此我倾向于在Java中使用'bool'而不是'boolean'.我在Emacs中编程,它在声明中突出显示'bool'与任何其他类型相同,所以我不倾向于在编译时捕获错误.

有没有办法让java模式为我突出'bool',以便我可以在编写代码时捕获错误?

java emacs syntax-highlighting

5
推荐指数
1
解决办法
323
查看次数

如何同时遍历Rust HashMap并修改其某些值?

我今年将尝试在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)

我不能同时具有对HashMapself.processes)和可变变量的引用,也不能具有两个可变引用。

那么,在Rust中最惯用的方法是什么?我可以看到两个选项:

  1. 在不可变引用超出范围后,一次将父/子关系复制到新的临时数据结构中,然后在第二次更新中更新Process结构。
  2. 更改我的数据结构以将“父”放入其自己的HashMap中。

还有第三种选择吗?

rust borrow-checker

4
推荐指数
1
解决办法
842
查看次数

标签 统计

borrow-checker ×1

emacs ×1

java ×1

rust ×1

syntax-highlighting ×1