网站名称是否已被注册,包装设计网站排行榜前十名,互联网推广模式,最珠海app下载官网这几天在Yew的学习实践中#xff0c;发现derive中的参数中包含了yew自己的东西#xff0c;比如yew::Properties。习惯使用#[derive(Clone, Debug, PartialEq)]之后#xff0c;发现还有新的成员#xff0c;这让我好奇起来。
首先让我们来回顾一下derive是什么。
#[derive(…这几天在Yew的学习实践中发现derive中的参数中包含了yew自己的东西比如yew::Properties。习惯使用#[derive(Clone, Debug, PartialEq)]之后发现还有新的成员这让我好奇起来。
首先让我们来回顾一下derive是什么。
#[derive()]是Rust中的一个attribute#[derive()]只能作用于struct和enum#[derive()]的参数是trait编译器会为我们生成实现这些trait的代码
那么根据上面的对derive的定义怎么理解下面这段代码呢
#[derive(Properties, Clone, PartialEq)]
pub struct Props {show: bool,
}我也是才学习Rust我的理解如下有不对的地方还请大家留言指正。
结构体Props继承了Properties, Clone, PartialEq这3个trait的实现trait的实现工作由编译器搞定它对使用者来说是透明的不可见的
Rust语言本身没有多继承这种说法但是derive这个attribute还是把多继承搬出来了。是不是可以理解成编译器层面的多继承呢