rust

rust

2023年2月26日
rust
202302, rust

struct 和 enum 类型 # 分支 # 项目组织结构 # 单元测试 # 一般放在和被测试代码相同的文件中, 使用条件编译,只在测试环境下编译 #[cfg(test)] mod tests { #[test] fn it_works() { assert_eq!(2 + 2, 4); } } 集成测试一般放在 tests 目录下,和 src 平行。 和单元测试不同,集成测试只能测试 crate 下的公开接口,编译时编译成单独的可执行文件。 关联类型与泛型 # 关联类型和泛型参数都可以用来定义trait中的未指定类型。但是它们的作用和使用方式是不同的。 泛型参数是在定义trait的时候就指定的,而关联类型是在实现trait的时候才会确定具体的类型。泛型参数的类型必须在trait定义中已经确定,而关联类型的类型可以在实现trait的时候才确定。这使得关联类型更加灵活,可以用于更多的场景。 此外,泛型参数用于指定方法参数和返回值的类型,而关联类型用于指定trait内部的类型关系。这两个特性的作用和使用方式是不同的。 在一些特定的情况下,使用泛型参数可以替代关联类型。比如,如果一个trait只有一个方法,那么可以直接使用泛型参数来指定方法参数和返回值的类型。但是在复杂的trait中,使用关联类型可以使得代码更加通用和灵活。 因此,虽然泛型参数和关联类型都可以用来定义trait中的未指定类型,但它们的作用和使用方式是不同的,需要根据具体的情况来选择使用哪种特性 clone和copy # 在 Rust 中,Copy 和 Clone 是用于实现数据类型复制的 trait。它们是 Rust 语言中的两个核心 trait,都位于标准库的预定义 trait 中。 Copy trait表示该类型的值可以通过简单的内存复制来进行赋值操作,而不需要转移所有权。因此,当一个Copy类型的值被赋值给另一个变量时,它的值会被完整地复制到新的变量中,并且原来的变量仍然可以使用它的值。Copy trait通常适用于基本数据类型(如整数和布尔值)以及简单的数据结构(如元组和结构体),并且不能手动实现该trait。 ...