gpt4 book ai didi

rust - 不能借用 `self.hash` 作为可变的,因为它也被借用为不可变的

转载 作者:行者123 更新时间:2023-11-29 08:03:12 26 4
gpt4 key购买 nike

<分区>

我正在努力使这项工作成功

use std::collections::HashMap;

struct Test1 {
total: u32,
hash: HashMap<u32, u32>,
}

impl Test1 {
fn new() -> Test1 {
Test1 {
total: 0,
hash: HashMap::new(),
}
}

fn add(&mut self) -> u32 {
self.total += 1;
self.total
}

fn get_or_create(&mut self, id: u32) -> u32 {
match self.hash.get(&id) {
Some(value) => *value,
None => {
let value = self.add();
self.hash.insert(id, value);
value
}
}
}
}

fn main() {
let mut test = Test1::new();
println!("{:?}", test.get_or_create(1));
println!("{:?}", test.get_or_create(1));
}

(围栏)[ http://is.gd/hDLEaL]

但是我明白了

<anon>:25:33: 25:37 error: cannot borrow `*self` as mutable because `self.hash` is also borrowed as immutable [E0502]

删除模式匹配并不能解决问题,但我不明白为什么。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com