Rust 結構體

結構體定義:

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);
相關文章
相關標籤/搜索