相关疑难解决方法(0)

不能借用可变性,因为它也被借用为不可变的

我正在学习Rust,我不明白为什么这不起作用.

#[derive(Debug)]
struct Node {
    value: String,
}

#[derive(Debug)]
pub struct Graph {
    nodes: Vec<Box<Node>>,
}

fn mk_node(value: String) -> Node {
    Node { value }
}

pub fn mk_graph() -> Graph {
    Graph { nodes: vec![] }
}

impl Graph {
    fn add_node(&mut self, value: String) {
        if let None = self.nodes.iter().position(|node| node.value == value) {
            let node = Box::new(mk_node(value));
            self.nodes.push(node);
        };
    }

    fn get_node_by_value(&self, value: &str) -> Option<&Node> {
        match self.nodes.iter().position(|node| node.value == *value) {
            None => None, …
Run Code Online (Sandbox Code Playgroud)

reference rust

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

reference ×1

rust ×1