Rust結構體更新語法


使用Struct更新語法從其他範例建立新範例。
當新範例使用舊範例的大部分值時,可以使用struct update語法。考慮兩名員工employee1employee2

  • 首先,建立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()方法中建立的。