struct User { username: String, email: String, sign_in_count: u64, active: bool, }
這樣能夠定義一個結構體。python
當已有一個結構體User1時:函數
let user2 = User { email: String::from("another@example.com"), username: String::from("anotherusername567"), ..user1 };
能夠這樣把剩餘的字段賦值爲和user1相同的值。blog
struct Point(i32, i32, i32); let origin = Point(0, 0, 0);
這樣便定義了一個元組結構體,在你但願命名一個元組時頗有用。class
結構體內能夠實現方法:email
struct Rectangle { width: u32, height: u32, } impl Rectangle { fn area(&self) -> u32 { self.width * self.height } }
這樣調用:方法
let rect1 = Rectangle { width: 30, height: 50 }; rect1.area();
一個impl內能夠實現若干方法,一個結構體也能夠有多個impl。im
impl Rectangle { fn square(size: u32) -> Rectangle { Rectangle { width: size, height: size } } }
這樣調用關聯函數:命名
let sq = Rectangle::square(3);