pub struct Node<'a> {
region: &'a Region,
first_num: i32,
second_num: i32,
direction_node_map:HashMap<Direction,Node>,
}
上面是我的代码 代码倒数第二行 HashMap<Direction,Node> Node这里 总是提示 Missing lifetime specifier
想实现的功能大概是 一个区域里,有很多节点,每个节点通过一个HashMap 跟别的节点 相互关联。
去搜索了相关生命周期的知识, 但是依然有点不知道 这里该怎么写
本身是java程序猿,这里有点疑惑的是,
按照rust 的语言来说,在HashMap里面,我存的应该是 Node节点的指针,所以写过
direction_node_map:HashMap<Direction,Box>,
这样的代码,
在一个对象里,使用别的对象,都必须用对象的指针吗?
1
共 1 条评论, 1 页
评论区
写评论尝试了一下,没提示错误了,在Map的Node后面加上 <'a> 就可以了, Direction是枚举类型,所以可能不需要加吧。 换成指针类型,好像也可以了 direction_node_map:HashMap<Direction,Box<Node<'a>>>。 有点疑惑,我该用 Node<'a> 还是 Box<Node<'a>> ,这两种有什么区别, 在Java里都是引用,就没考虑过这样的问题,也没看懂 <'a> 所谓的生命周期具体的意义 Node的生命周期,取决于 内部包含的 Region的生命周期 跟 map里包含的 Node的生命周期的并集?