结构体是用户定义的数据类型,由不同数据类型的变量组成。 通过在结构体名称之前使用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
。