Rust结构更新语法

使用Struct更新语法从其他实例创建新实例。
当新实例使用旧实例的大多数值时, 则可以使用struct update语法。考虑两个雇员employee1和employee2。

  • 首先, 创建Employee结构的实例employee1:
let employee1 = Employee{employee_name : String::from("Akshay Gupta"), employee_id: 12, employee_profile : String::from("Computer Engineer"), active : true, };

  • 其次, 创建实例employee2。 employee2实例的某些值与employee1相同。有两种声明employee2实例的方法。
第一种方法是声明employee2实例而不进行语法更新。
let employee2 = Employee{employee_name : String::from("Akhil Gupta"), employee_id: 11, employee_profile : employee1.employee_profile, active : employee1.active, };

第二种方法是通过使用语法更新来声明employee2实例。
let employee2 = Employee{employee_name : String::from("Akhil Gupta"), employee_id: 11, ..employee1};

【Rust结构更新语法】语法” ..” 指定未显式设置其余字段, 并且它们与给定实例中的字段具有相同的值。
让我们看一个简单的Structure示例:
struct Triangle{base:f64, height:f64, }fn main(){let triangle= Triangle{base:20.0, height:30.0}; print!("Area of a right angled triangle is {}", area(& triangle)); }fn area(t:& Triangle)-> f64{0.5 * t.base * t.height}

输出
Area of a right angled triangle is 300

在以上示例中, 创建了三角形的结构, 并且该三角形的结构包含两个变量, 即直角三角形的底边和高度。 Triangle的实例在main()方法内创建。

    推荐阅读