Rust結構體

結構體是用戶定義的數據類型,由不同數據類型的變數組成。 通過在結構體名稱之前使用struct關鍵字來定義結構體。 結構體成員包含在大括弧內。 在大括弧內,結構體成員定義了它們的名稱和類型,結構成員也稱為字段。

結構體語法:

struct Student
{
    member-variable1;
    member-variable2;
    .
    .
}

在上面的語法中,結構體是使用關鍵字struct定義的。 結構體包含不同類型的變數。

聲明結構體的實例 -

let user = Student{
// key:value pairs;
}

在上面的聲明中,userStudent結構的實例。 它通過使用結構名稱然後使用大括弧來定義。 大括弧包含鍵:值對,其中鍵是字段的名稱,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


上一篇: Rust切片 下一篇: Rust結構體更新語法