使用Struct
更新语法从其他实例创建新实例。
当新实例使用旧实例的大部分值时,可以使用struct update
语法。考虑两名员工employee1
和employee2
。
- 首先,创建
Employee
结构体的实例employee1
:
let employee1 = Employee{
employee_name : String::from("Maxsu"),
employee_id: 12,
employee_profile : String::from("IT工程师"),
active : true,
};
- 其次,创建
employee2
的实例。employee2
实例的某些值与employee1
相同。 有两种方法可以声明employee2
实例。
第一种方法是在没有语法更新的情况下声明employee2
实例。
let employee2 = Employee{
employee_name : String::from("Maxsu"),
employee_id: 11,
employee_profile : employee1.employee_profile,
active : employee1.active,
};
第二种方法是使用语法更新声明employee2
实例。
let employee2 = Employee{
employee_name : String::from("Yiibai"),
employee_id: 11,
..employee1
};
语法..
指定其余字段未显式设置,并且它们与给定实例中的字段具有相同的值。
下面来看一个结构的简单示例:
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
)的结构体,它包含两个变量,即直角三角形的底边和高度。三角形(Triangle
)的实例是在main()
方法中创建的。