📅  最后修改于: 2021-01-08 13:40:06             🧑  作者: Mango
使用Struct更新语法从其他实例创建新实例。
当新实例使用旧实例的大多数值时,我们可以使用struct update语法。考虑两个雇员employee1和employee2。
let employee1 = Employee{
employee_name : String::from("Akshay Gupta"),
employee_id: 12,
employee_profile : String::from("Computer Engineer"),
active : true,
};
第一种方法是在不更新语法的情况下声明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()方法内创建。