Rust 结构体
数组用于表示一个同质值的集合。类似地,结构体是Rust中的另一种用户定义的数据类型,它允许我们将不同类型的数据项(包括另一个结构体)组合起来。结构体将数据定义为键值对。
语法 – 声明结构体
使用 struct 关键字来声明一个结构体。由于结构体是静态类型的,结构体中的每个字段都必须与一个数据类型关联。结构体的命名规则和约定与变量类似。结构体块必须以分号结束。
语法 – 初始化结构体
在声明结构体后,每个字段都应赋予一个值。这被称为初始化。
以上示例声明了一个名为Employee的结构体,它有三个字段-类型为name、company和age。main()函数初始化了这个结构体。它使用println!宏来打印结构体中定义的字段的值。
输出
修改结构体实例
要修改一个实例,实例变量应标记为可变。下面的示例声明和初始化了一个名为 员工 的结构体,然后将 年龄 字段的值从50修改为40。
输出
将struct传递给函数
以下示例显示了如何将struct实例作为参数传递。display方法接受一个Employee实例作为参数,并打印详细信息。
这是完整的程序−
输出
返回结构体从函数
让我们考虑一个函数 who_is_elder(),它比较两个员工的年龄并返回较年长的那个。
下面是完整的程序 –
输出
结构体中的方法
方法就像函数一样,它们是一组逻辑上的编程指令。方法是用 fn 关键词声明的,其作用范围在结构体块内。
方法是在结构体块外声明的。使用 impl 关键词在结构体上下文中定义一个方法。方法的第一个参数总是表示结构体的调用实例的 self 。方法对结构体的数据成员进行操作。
要调用一个方法,我们需要先实例化结构体。然后可以使用结构体的实例调用该方法。
语法
说明
以下示例定义了一个名为 Rectangle 的结构,其中包含字段 width 和 height 。在结构的上下文中定义了一个方法 area 。该方法通过 self 关键字访问结构的字段,并计算一个矩形的面积。
输出
结构体中的静态方法
静态方法可以用作实用方法。 这些方法甚至在结构体实例化之前就存在。 静态方法使用结构体的名称调用,可以在没有实例的情况下访问。 与普通方法不同,静态方法不会使用&self参数。
语法 – 声明一个静态方法
一个静态方法可以像函数和其他方法一样,可以选择包含参数。
语法 – 调用静态方法
structure_name :: 语法用于访问静态方法。
说明
以下示例使用getInstance方法作为一个工厂类,创建并返回结构Point的实例。