📜  锈结构

📅  最后修改于: 2021-01-08 13:39:10             🧑  作者: Mango

什么是结构?

结构是用户定义的数据类型,由不同数据类型的变量组成。通过在结构名称之前使用struct关键字定义结构。结构成员括在大括号内。在花括号内,用其名称和类型定义结构成员,并且结构成员也称为field

结构的语法:

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

在以上语法中,结构是通过使用关键字struct定义的。结构包含不同类型的变量。

如何声明结构实例

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

在上面的声明中,用户是Student结构的实例。通过使用结构名称和大括号来定义它。大括号包含key:value对,其中keys是字段的名称,而value是我们要存储在key字段中的数据。

让我们创建一个员工结构:

 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结构的实例。

当传递给函数的参数和字段名称相同时,使用Field Init简写。

当变量和字段名称相同时,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