当前位置: 首页 > news >正文

Rust的derive思考

这几天在Yew的学习实践中,发现derive中的参数中包含了yew自己的东西,比如yew::Properties。习惯使用#[derive(Clone, Debug, PartialEq)]之后,发现还有新的成员,这让我好奇起来。

首先让我们来回顾一下derive是什么。

  1. #[derive()]是Rust中的一个attribute
  2. #[derive()]只能作用于struct和enum
  3. #[derive()]的参数是trait
  4. 编译器会为我们生成实现这些trait的代码

那么根据上面的对derive的定义,怎么理解下面这段代码呢?

#[derive(Properties, Clone, PartialEq)]
pub struct Props {show: bool,
}

我也是才学习Rust,我的理解如下,有不对的地方还请大家留言指正。

  1. 结构体Props继承了Properties, Clone, PartialEq这3个trait的实现;
  2. trait的实现工作由编译器搞定,它对使用者来说是透明的,不可见的;

Rust语言本身没有多继承这种说法,但是derive这个attribute还是把多继承搬出来了。是不是可以理解成编译器层面的多继承呢?

http://www.lryc.cn/news/154286.html

相关文章:

  • Python常用模块
  • Java“牵手”京东商品评论数据接口方法,京东商品评论接口,京东商品评价接口,行业数据监测,京东API实现批量商品评论内容数据抓取示例
  • 算法leetcode|75. 颜色分类(rust重拳出击)
  • 网络安全(黑客)自学笔记学习路线
  • NoSQL:非关系型数据库分类
  • 【Eclipse】Project interpreter not specified 新建项目时,错误提示,已解决
  • OPENCV实现图像查找
  • vue仿企微文档给页面加水印(水印内容可自定义,超简单)
  • “金融级”数字底座:从时代的“源启”,到“源启”的时代
  • zabbix自动发现linux系统挂载的nas盘,并实现读写故障的监控告警
  • 无涯教程-JavaScript - DAYS函数
  • 48、springboot 的国际化之让用户在程序界面上弄个下拉框,进行动态选择语言
  • FPGA可重配置原理及实现(1)——导论
  • Ubuntu系统下使用宝塔面板实现一键搭建Z-Blog个人博客的方法和流程
  • 数据结构 | 第一章 绪论
  • python爬虫入门教程(非常详细):如何快速入门Python爬虫?
  • ElementUI浅尝辄止21:Tree 树形控件
  • 插入排序,选择排序,交换排序,归并排序和非比较排序(C语言版)
  • 【每日一题】1041. 困于环中的机器人
  • C# 采用3DES-MAC进行签名 base64解码与编码
  • AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)
  • python excel 读取及写入固定格式
  • SQL Server进阶教程读书笔记
  • DHTMLX Gantt 8.0.5 Crack -甘特图
  • RHCA之路---EX280(5)
  • ”轻舟已过万重山“-----我回归更新了-----
  • win11右键菜单恢复win10风格
  • Nginx安装及配置负载均衡
  • C# OpenCvSharp 通道分离
  • oracle 自定义存储过程(非常简单明了)