Rust学习札记:结构体手动实现Default特性的default方法

本文是参考百度AI自动生成的文章,结合笔者自己的程序而写。

1。问题的提出:笔者在学习Rust编程时,需要一个结构体中包含时间类,在此结构体前,加了一个一个默认实例的宏,#[derive(Default)]。调试时,程序报错:“the trait `Default` is not implemented for `SystemTime`”,就是`SystemTime`类不能默认实例。

2。问题的解决:首先我查找了“Default.rs”中的说明,可以为结构体编写Default特性的default方法

其说明如下:

/// impl Default for Kind {

///     fn default() -> Self { Kind::A }

/// }

按“

Default.rs”中的说明,我结合自己的程序,写了如下的程序:

A。 首先注释掉 #[derive(Default)]这一语句

B。自行编写结构体的default方法

其中结构体如下

pub struct COrderFile{  //订单文件类 

        。。。。。。

        m_time      : SystemTime,   //订单时间

        。。。。。。    

    }

对应的default方法

impl Default for COrderFile {

     fn default() -> Self {

     。。。。。。

           COrderFile::m_time = SystemTime::now()

     。。。。。。

      }

}

在参考百度搜索产生的文章后,修改default方法如下

    #[allow(dead_code)]

    impl Default for COrderFile {

        fn default() -> Self {

            COrderFile {

                。。。。。。

                m_time: SystemTime::now(),

                。。。。。。

            }

        }

    }

程序通过编译,并正确运行。

3。总结:为结构体编写实现Default特性的default方法时,其赋值与结构体的关联函数new()的书写方式是相同的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值