什么是结构(Rust结构用法)

本文概述

  • 结构的语法
  • 如何访问结构的特定成员变量?
结构是用户定义的数据类型, 由不同数据类型的变量组成。通过在结构名称之前使用struct关键字定义结构。结构成员括在大括号内。在大括号内, 用其名称和类型定义结构成员, 并且结构成员也称为字段。
结构的语法
struct Student{member-variable1; member-variable2; ..}

【什么是结构(Rust结构用法)】在以上语法中, 结构是通过使用关键字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。

    推荐阅读