Rust结构更新语法

使用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()方法内创建。


微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?