我正在寻找有关引用和可变引用类型的复制/移动语义的文档.

下面的代码片段显示了实现Copy特性的不可变引用(& T)和不实现Copy特性的可变引用(&mut T).

struct T;
fn copyable<U>(_: U) where U: Copy {}

fn main() {
    let a = &T;
    copyable(a);  // OK

    let b = &mut T;
    copyable(b);
    // error: the trait `core::marker::Copy` is not implemented for the type `&mut T`
}

但我找不到这种行为的描述.有人知道一些(联合国)官方文件吗?(还是我错了?)

推荐答案

Rust的std::marker::Copytrait 参考称(感谢@Chris Emerson):

When can my type not be Copy?

Rust相关问答推荐

如何在tauri—leptos应用程序中监听后端值的变化?""

如何从铁 rust 中呼唤_mm_256_mul_ph?

获取字符串切片(&;str)上的切片([ia..ib])返回字符串

如何定义实现同名但返回类型不同的 struct 的函数

S在Cargo.toml中添加工作空间开发依赖关系的正确方法是什么?

如何将映射反序列化为具有与键匹配的字段的定制 struct 的向量?

try 创建随机数以常量

为什么Option类型try块需要类型注释?

是否提供Bundle 在可执行文件中的warp中的静态文件?

Rust面向对象设计模式

Rust proc_macro 和 syn:解析空格

unwrap 选项类型出现错误:无法移出共享引用后面的*foo

如何从trait方法返回std :: iter :: Map?

std::vector::shrink_to_fit 如何在 Rust 中工作?

内部值发生变化时 Rc 的行为

为什么 &i32 可以与 Rust 中的 &&i32 进行比较?

tokio async rust 的 yield 是什么意思?

如何断言代码不会在测试中编译?

如何制作具有关联类型的特征的类型擦除版本?

有没有比多个 push_str() 调用更好的方法将字符串链接在一起?