Rust 结构体

39 次浏览
2024年07月17日创建

结构体包括结构体成员默认是私有的,可以声明pub。

在 Rust 语言中,`#[derive(...)]` 属性用于自动为类型派生一些特质(traits)。在你给出的代码片段中,`#[derive((Copy,Clone, Debug, PartialEq))]` 为一个类型自动派生了以下四个特质:

1. `Copy`: 这个特质表示类型的值可以通过位复制来复制值,而不仅仅是移动。它通常用于标记那些在复制时不需要进行资源管理的简单值类型。例如,所有的整数类型都实现了 `Copy` 特质。

2. `Clone`: 这个特质提供了一个方法 `clone`,用于显式地复制类型的值。对于实现了 `Copy` 的类型,`Clone` 的实现通常只是返回自身的拷贝。而对于那些没有实现 `Copy` 的复杂类型,`Clone` 可以进行深拷贝。

3. `Debug`: 这个特质让类型可以使用 `{:?}` 格式化符号打印出来,主要用于调试目的。它允许类型的实例在格式化输出(如使用 `println!` 宏)时被包含在调试信息中。

4. `PartialEq`: 这个特质提供了一种比较类型的值是否相等的方法。实现了 `PartialEq` 的类型可以使用 `==` 和 `!=` 进行比较。