首先,我们假设具有这样的一个结构体:
代码语言:javascript复制#[derive(Debug)]
struct Order {
name: String,
year: u32,
made_by_phone: bool,
made_by_mobile: bool,
made_by_email: bool,
item_number: u32,
count: u32,
}
然后,我们先是声明了第一个实例,叫做ord_1.并且为这个ord_1设置了一些值。
面对这样一个场景:我们要创建一个新的实例ord_2,并且希望ord_2除了name以外,其他的部分都和ord_1相同。如果我们直接每个字段去赋值,来新建一个结构体的话,属实有点麻烦。而且如果结构体中的成员变量数目发生了改变,也会很麻烦,到处都要改。
这个时候我们可以使用结构体的Update语法来实现:
代码语言:javascript复制let ord_2 = Order{
name: String::from("Hacker in Rust"),
..ord_1
};
这样就能完成上面的这个任务。