橘子味的心
标题:Rust结构体更新语法

使用Struct更新语法从其他实例创建新实例。
当新实例使用旧实例的大部分值时,可以使用struct update语法。考虑两名员工employee1employee2

  • 首先,创建Employee结构体的实例employee1
  1. let employee1 = Employee{
  2. employee_name : String::from("Maxsu"),
  3. employee_id: 12,
  4. employee_profile : String::from("IT工程师"),
  5. active : true,
  6. };
  7. Rust
  • 其次,创建employee2的实例。 employee2实例的某些值与employee1相同。 有两种方法可以声明employee2实例。
    第一种方法是在没有语法更新的情况下声明employee2实例。
  1. let employee2 = Employee{
  2. employee_name : String::from("Maxsu"),
  3. employee_id: 11,
  4. employee_profile : employee1.employee_profile,
  5. active : employee1.active,
  6. };
  7. Rust

第二种方法是使用语法更新声明employee2实例。

  1. let employee2 = Employee{
  2. employee_name : String::from("Yiibai"),
  3. employee_id: 11,
  4. ..employee1
  5. };
  6. Rust

语法..指定其余字段未显式设置,并且它们与给定实例中的字段具有相同的值。

下面来看一个结构的简单示例:

  1. struct Triangle
  2. {
  3. base:f64,
  4. height:f64,
  5. }
  6.  
  7. fn main()
  8. {
  9. let triangle= Triangle{base:20.0,height:30.0};
  10. print!("Area of a right angled triangle is {}", area(&triangle));
  11. }
  12.  
  13. fn area(t:&Triangle)->f64
  14. {
  15. 0.5 * t.base * t.height
  16. }
  17. Rust

执行上面示例代码,得到以下结果 -

  1. Area of a right angled triangle is 300
  2. Shell

在上面的例子中,创建了三角形(Triangle)的结构体,它包含两个变量,即直角三角形的底边和高度。三角形(Triangle)的实例是在main()方法中创建的。