gpt4 book ai didi

rust - 复制/移动 &T/&mut T 类型本身的语义文档

转载 作者:行者123 更新时间:2023-11-29 07:54:35 27 4
gpt4 key购买 nike

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

以下代码片段显示了不可变引用(& 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::Copy 特性引用说(感谢 @Chris Emerson ):

When can my type not be Copy?
Some types can't be copied safely. For example, copying &mut T would create an aliased mutable reference, and copying String would result in two attempts to free the same buffer.
[...]

关于rust - 复制/移动 &T/&mut T 类型本身的语义文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37381212/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com