Types 我怎样才能得到与'over'T'、`&;相同的'std::any::TypeId::结果;T`and`&;不生锈吗?

Types 我怎样才能得到与'over'T'、`&;相同的'std::any::TypeId::结果;T`and`&;不生锈吗?,types,rust,Types,Rust,我想为给定类型T获取TypeId的一些实例,该类型实现了size+'静态 使用std::any::TypeId; 特性组件:大小+'静态{} 执行公司{ 纯型=T; } impl我终于在锈菌的官方社区找到了解决办法。它可以通过专门化不稳定特性来实现 #![专题(专门化)] 使用std::any::TypeId; 使用std::ops::Deref; 性状成分:大小{ 纯型:Comp; } 执行公司{ 默认类型Pure=T; } T的impl Comp其中::Target:Comp{ 类型Pur

我想为给定类型
T
获取
TypeId
的一些实例,该类型实现了
size+'静态

使用std::any::TypeId;
特性组件:大小+'静态{}
执行公司{
纯型=T;
}

impl我终于在锈菌的官方社区找到了解决办法。它可以通过
专门化
不稳定特性来实现

#![专题(专门化)]
使用std::any::TypeId;
使用std::ops::Deref;
性状成分:大小{
纯型:Comp;
}
执行公司{
默认类型Pure=T;
}
T的impl Comp其中::Target:Comp{
类型Pure=::目标;
}
结构Foo;
fn main(){
println!(“{:?}”,TypeId::of::());
println!(“{:?}”,TypeId::of::());
println!(“{:?}”,TypeId::of::());
}

对于与您手中的类型可能对应或可能不对应的
TypeId
您打算做什么?这是否只需要对类型(即“静态”方法)进行操作,还是您能够对值使用方法?这似乎是一本教科书,遗憾的是尚未稳定(或接近稳定).即使在夜间,你也不能专门研究某一特征。可以通过(使用
P:Deref
而不是
Wrapper
)解决,但我怀疑这是一件有用的事情;正如我之前所问的,如果不知道某个
TypeId
属于什么类型,您将如何处理它?您不能透明地处理
&t
t
,因此无法通过
任何
向上/向下播放。我想你可以用它给地图编索引?但这似乎只是把问题推向了一个更高的层次,因为无论你得到什么值,都是针对
T
&T
的,但不是两者都是。这听起来很奇怪,好像你在试图想象引用并不存在。我鼓励你不要这样做,并寻找其他方法来做你正在做的事情。