E0033
trait 类型被解引用
错误代码示例:
let trait_obj: &SomeTrait = &"some_value";
// 试图隐式解引用创建大小位置的本地变量
let &invalid = trait_obj;
// 可以调用方法而不绑定到指向的值
trait_obj.method_one();
trait_obj.method_two();
trait 类型的指针不能被模式隐式解引用。每个 trait 都定义了一个类型,但是由于 trait 实现的大小不是固定的,所以这个类型没有编译时大小 (compile-time size)。因此,对 trait 类型的访问都必须通过指针。如果遇到此错误,应尽量避免解引用指针。
有关更多 trait 对象 的内容可以参阅 Reference 中的 Trait Objects 章节。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。