从为什么不能在同一结构体中存储值和对该值的引用?中得知,我不能同时在同一结构体中存储值和对该值的引用。
提出的解决方案是:
最简单且推荐的解决方案是不要尝试将这些项目放在同一个结构体中。通过这样做,您的结构体嵌套将模拟代码的生命周期。将拥有数据的类型放入一个结构体中,然后提供方法以允许根据需要获取引用或包含引用的对象。
然而,我不知道如何应用到我的具体情况中:
我想建立双向映射,由两个内部的
提出的解决方案是:
最简单且推荐的解决方案是不要尝试将这些项目放在同一个结构体中。通过这样做,您的结构体嵌套将模拟代码的生命周期。将拥有数据的类型放入一个结构体中,然后提供方法以允许根据需要获取引用或包含引用的对象。
然而,我不知道如何应用到我的具体情况中:
我想建立双向映射,由两个内部的
HashMap
实现。显然,其中之一必须拥有数据。然而,另一部分对于双向映射也是至关重要的,所以我不知道如何将这两个分开,同时仍维护双向映射接口。struct BidiMap<'a, S: 'a, T: 'a> { ? }
fn put(&mut self, s: S, t: T) -> ()
fn get(&self, s: &S) -> T
fn get_reverse(&self, t: &T) -> S