Pointers 如何检查两个变量是否指向内存中的同一对象?

Pointers 如何检查两个变量是否指向内存中的同一对象?,pointers,memory,rust,Pointers,Memory,Rust,例如: struct Foo<'a> { bar: &'a str } fn main() { let foo_instance = Foo { bar: "bar" }; let some_vector: Vec<&Foo> = vec![&foo_instance]; assert!(*some_vector[0] == foo_instance); } struct Foo有一个函数: 它将检查引用是否指向内存中

例如:

struct Foo<'a> { bar: &'a str }

fn main() {
    let foo_instance = Foo { bar: "bar" };
    let some_vector: Vec<&Foo> = vec![&foo_instance];

    assert!(*some_vector[0] == foo_instance);
}
struct Foo有一个函数:


它将检查引用是否指向内存中的同一位置。

您要查找的术语是“引用相等”。
use std::ptr;

struct Foo<'a> {
    bar: &'a str,
}

fn main() {
    let foo_instance = Foo { bar: "bar" };
    let some_vector: Vec<&Foo> = vec![&foo_instance];

    assert!(ptr::eq(some_vector[0], &foo_instance));
}
assert!(some_vector[0] as *const Foo == &foo_instance as *const Foo);