Rust 程式設計中的結構


Rust 中的結構是使用者定義的資料型別。它們包含用於定義其具體例項的欄位。

我們在 struct 關鍵字的幫助下定義struct,後跟我們希望為 struct 起的名字。struct 的名稱應該描述我們正在其中分組的資料塊的重要性。

語法

struct Employee {
   id: i32,
   name: String,
   leaves: i8,
}

上面的語法包含 struct 的名稱,在大括號中,我們有不同的欄位,即型別為i32idnameleaves

建立例項

為了建立 Employee 結構的例項,我們執行類似這樣的操作

fn main() {
   let emp1 = Employee {
      id : 10602,
      name : String::from("Mukul"),
      leaves : 9
   };
   println!("{:?}",emp1);
}

輸出

Employee { id: 10602, name: "Mukul", leaves: 9 }

上面的結構例項不可變;我們可以透過新增mut關鍵字使其可變。

示例

 線上演示

#![allow(unused)]
#[derive(Debug)]
struct Employee {
   id: i32,
   name: String,
   leaves: i8,
}
fn main() {
   let mut emp1 = Employee {
      id : 10602,
      name : String::from("Mukul"),
      leaves : 9
   };
   println!("{:?}",emp1);
   emp1.id = 10603;
   println!("{:?}",emp1);
}

輸出

Employee { id: 10602, name: "Mukul", leaves: 9 }
Employee { id: 10603, name: "Mukul", leaves: 9 }

單位結構

我們還可以在 Rust 中擁有不包含任何欄位的結構。它們很少有用,但可以與其他功能結合使用。

示例

 線上演示

#![allow(unused)]
#[derive(Debug)]
struct Person;
fn main() {
   let p = Person;
   println!("{:?}",p);
}

輸出

Person

元組結構

第三種類型的結構稱為元組結構;它們包含一個或多個用逗號分隔的值。

示例

 線上演示

#![allow(unused)]
#[derive(Debug)]
struct Color(u8, u8, u8);
fn main() {
   let white = Color(1, 1, 1);
   let Color(r, g, b) = white;
   println!("White = rgb({}, {}, {})", r, g, b);
}

輸出

White = rgb(1, 1, 1)

更新於:2021 年 4 月 3 日

554 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.