刘文同
2021-05-29
基本的值语义定义在 std 中,而 Deref 也定义在 std 中,所以根据孤儿原则, 我们是没办法给 u32, [u32; 3] 这种类型实现 Deref 的。 会报错: error[E0117]: only traits defined in the current crate can be implemented for arbitrary types impl doesn't use only types from inside the current crate
2
神 一生有你
2020-10-18
我记得Box内部应该是编译器特殊处理了,&**self就和&*self.0效果是一样的,&**self,*self解引用box,再*就是box包裹的T(这应该是编译器特殊处理的),然后再&就是包裹的引用
共 1 条评论
1
神 一生有你
2020-10-18
let c=Box::from(5); *c // 等价于 *(c.deref()) 问下,Box::new和from包裹一个变量,new是在堆上分配,但from好像不是?
共 1 条评论