使用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()方法内创建。
评论前必须登录!
注册