結構體定義:
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);
