結構體定義:
struct User { username: String, email: String, sign_in_count: u64, active: bool, }
這樣可以定義一個結構體。
當已有一個結構體User1時:
let user2 = User { email: String::from("another@example.com"), username: String::from("anotherusername567"), ..user1 };
可以這樣把剩余的字段賦值為和user1相同的值。
元組結構體
struct Point(i32, i32, i32); let origin = Point(0, 0, 0);
這樣便定義了一個元組結構體,在你希望命名一個元組時很有用。
方法
結構體內可以實現方法:
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。
關聯函數
impl Rectangle { fn square(size: u32) -> Rectangle { Rectangle { width: size, height: size } } }
這樣調用關聯函數:
let sq = Rectangle::square(3);