Rust教學
Rust下載和安裝
Rust簡介
Rust Hello World
Rust的特點
Rust註釋
Rust開發環境安裝
Rust文檔
Rust第一個程序
Rust格式化打印
Rust調試
Rust顯示
測試用例:列表
Rust格式化
Rust原語
Rust常量和運算符
Rust元組
Rust數組和切片
Rust自定義類型
Rust結構
Rust可視性
Rust枚舉
Rust常量
Rust變量綁定
Rust變量綁定-可變性
Rust變量綁定-範圍和陰影
Rust變量綁定-聲明
Rust類型轉換
Rust類型轉換 - 字面量
Rust類型轉換-推導
Rust類型轉換 - 別名
Rust表達式
Rust if/else語句
Rust循環
Rust嵌套和標籤
Rust while循環
Rust for和範圍
Rust匹配/match
Rust匹配析構元組
Rust解構枚舉
Rust指針和引用
Rust解構結構
Rust Guards
Rust綁定
Rust if let
Rust while let
Rust函數
Rust方法
Rust閉包
Rust捕捉
Rust作爲輸入參數
Rust匿名類型
Rust輸入函數
Rust作爲輸出參數
Rust結構體
結構體是用戶定義的數據類型,由不同數據類型的變量組成。 通過在結構體名稱之前使用struct
關鍵字來定義結構體。 結構體成員包含在大括號內。 在大括號內,結構體成員定義了它們的名稱和類型,結構成員也稱爲字段。
結構體語法:
struct Student
{
member-variable1;
member-variable2;
.
.
}
在上面的語法中,結構體是使用關鍵字struct
定義的。 結構體包含不同類型的變量。
聲明結構體的實例 -
let user = Student{
// key:value pairs;
}
在上面的聲明中,user
是Student
結構的實例。 它通過使用結構名稱然後使用大括號來定義。 大括號包含鍵:值對,其中鍵是字段的名稱,value
是要存儲在鍵字段中的數據。
下面代碼創建一個員工結構體:
struct Employee{
employee_name : String,
employee_id: u64,
employee_profile: String,
active: bool,
}
員工結構體實例:
let employee = Employee{
employee_name : String::from("Akshay Gupta"),
employee_id: 12,
employee_profile : String::from("Computer Engineer"),
active : true,
};
如何訪問結構體的成員變量?
可以使用點(.
)表示法訪問結構的特定成員變量。 假設想要訪問Employee
結構體的employee_name
變量,那麼可使用以下寫法:
employee.employee_name;
注意:如果想通過使用點表示法來更改特定字段的值,那麼必須使實例可變,因爲Rust不允許特定字段爲可變字段。
let mut employee = Employee{
employee_name : String::from("Akshay Gupta"),
employee_id: 12,
employee_profile : String::from("Computer Engineer"),
active : true,
};
employee.employee_name = String :: from("Akhil Gupta");
在函數體中創建實例:
fn create_employee(name:String, profile:String)
{
Employee{
employee_name:name,
employee_id:12,
employee_profile:profile,
active:true,
}
}
在上面的示例中,在函數體中隱式創建了Employee
結構體的實例。 create_employee()
函數返回具有給定名稱和配置文件的Employee
結構體實例。
當傳遞給函數和字段的參數具有相同名稱時,使用字段初始化簡寫。
當變量和字段具有相同的名稱時,Rust提供了使用字段初始化簡寫的靈活性。 不需要重複字段和變量。
fn create_employee(employee_name:String, employee_profile:String)
{
Employee{
employee_name,
employee_id:12,
employee_profile,
active:true,
}
}
在上面的示例中,參數和字段的名稱相同。 因此,不需要編寫employee_name:employee_name
,它可以直接寫爲employee_name
。