1

我正在使用关联列表来关联TypeId事件类型和TypeId想要接收它们的人。

当我尝试获取TypeIdan时,无论它是Rc<Any>什么,它都会为您提供相同TypeId的(Rc存储 an 的Any那个Any)。

#![feature(get_type_id)]

use std::any::*;
use std::rc::Rc;

fn main() {
    let temp: Rc<Any> = Rc::new(13);
    let temp2: &Any = &5;

    assert_eq!(temp.get_type_id(), temp2.get_type_id()); //fails!
}

我怎样才能得到里面TypeId的关联Any

我相信这Rc<_>实现了Deref特征以及Any特征。这意味着您可以取消引用Rc内部引用中的和调用函数。这也意味着Rc有它自己的关联TypeId。我不是在寻找TypeIdRc,而是TypeId从取消引用的 中寻找Any

4

1 回答 1

6

显式取消引用包装类型:

(*temp).get_type_id()
于 2018-10-31T19:26:28.113 回答