「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特性总结的主要内容,如果未能解决你的问题,请参考以下文章

「Rust笔记」Rust之自定义宏写法

Rust编程语言入门之Rust的面向对象编程特性

Atitit.rust语言特性 attilax 总结

Rust编程语言入门之高级特性

RUST 语言特性之变量

RUST 语言特性之变量