📜  Rust结构更新语法

📅  最后修改于: 2021-01-08 13:40:06             🧑  作者: Mango

更新语法

使用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
};

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

让我们看一个简单的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()方法内创建。