「Rust进阶笔记」Rust之derive特性总结
Posted 图解AI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「Rust进阶笔记」Rust之derive特性总结相关的知识,希望对你有一定的参考价值。
前言
编译器可以通过#[derive]为一些trait提供基础的实现。 如果需要更复杂的逻辑,这些trait也可以被手动实现。
这些可导入的实现:
- 比较:Eq、PartialEq、Ord、PartialOrd
- Clone:从&T的一个拷贝创建T
- Copy:把一个类型的move转换为copy
- Hash:从&T计算它的哈希
- Default:创建一个数据类型的空实例
- Debug: 用:?格式化一个值
Debug 用于程序员输出
Debug trait 用于开启格式化字符串中的调试格式,其通过在 占位符中增加 :? 表明。
Debug trait 允许以调试目的来打印一个类型的实例,所以使用该类型的程序员可以在程序执行的特定时间点观察其实例。
例如,在使用 assert_eq! 宏时,Debug trait 是必须的。如果等式断言失败,这个宏就把给定实例的值作为参数打印出来,如此程序员可以看到两个实例为什么不相等。
#[derive(Debug)]
struct ImportantExcerpt<\'a>
part: &\'a str,
fn main()
let novel = String::from("Call me Ishmael. Some years ago...");
let first_sentence = novel.split(\'.\').next().expect("Could not find a \'.\'");
let i = ImportantExcerpt part: first_sentence ;
println
以上是关于「Rust进阶笔记」Rust之derive特性总结的主要内容,如果未能解决你的问题,请参考以下文章