相关疑难解决方法(0)

为什么Deref :: deref本身的返回类型是引用?

我正在阅读Rust的Deref特性文档:

pub trait Deref {
    type Target: ?Sized;
    fn deref(&self) -> &Self::Target;
}
Run Code Online (Sandbox Code Playgroud)

deref函数的类型签名对我来说似乎是违反直觉的; 为什么返回类型是引用?如果引用实现了这个特性,那么它们可以被解除引用,它会产生什么影响呢?

我能提出的唯一解释是引用不实现Deref,但被认为是"原始可解除引用".但是,如何编写适用于任何可解除引用类型的多态函数,包括两者Deref<T>&T

pointers reference rust

11
推荐指数
2
解决办法
1983
查看次数

标签 统计

pointers ×1

reference ×1

rust ×1