gpt4 book ai didi

rust - 如何检查两个引用变量是否借用同一个对象?

转载 作者:行者123 更新时间:2023-11-29 07:57:09 25 4
gpt4 key购买 nike

<分区>

我有一个所有存储只读引用的结构,例如:

struct Pt { x : f32, y : f32, }
struct Tr<'a> { a : &'a Pt }

我想为 Tr impl Eq 来测试底层 a 引用是否完全相同 Pt :

let trBase1 = Pt::new(0.0, 0.0);
let trBase2 = Pt::new(0.0, 0.0);
assert!(trBase1 == trBase2); // ok.
let tr1 = Tr::new(&trBase1);
let tr2 = Tr::new(&trBase2);
let tr3 = Tr::new(&trBase1);
assert!(tr1 == tr3); // ok.
assert!(tr1.a == te2.a); // ok. Using Eq for Pt that compare values.
assert!(tr1 != tr2); // panicked! Not intended.

现在我有

impl<'a> PartialEq for Tr<'a> {
fn eq(&self, v : &Tr<'a>) -> bool {
// self.a == v.a // doesn't work.
}
}

我应该写什么?

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