我正在阅读Rust的Deref特性文档:
pub trait Deref {
type Target: ?Sized;
fn deref(&self) -> &Self::Target;
}
Run Code Online (Sandbox Code Playgroud)
deref函数的类型签名对我来说似乎是违反直觉的; 为什么返回类型是引用?如果引用实现了这个特性,那么它们可以被解除引用,它会产生什么影响呢?
我能提出的唯一解释是引用不实现Deref,但被认为是"原始可解除引用".但是,如何编写适用于任何可解除引用类型的多态函数,包括两者Deref<T>和&T?