类型关键词struct
通过了解和学习本节Rust语言的基本概念,可以实现本章需要开发的共享软件篋程序代码。
学习内容
- 理解和掌握Rust语言结构性的类型关键词
struct
定义形式 - 理解和掌握Rust语言结构性的类型关键词
struct
实例化方式 - 理解和掌握Rust语言结构性的类型关键词
struct
调用手段
篇目
类型关键词struct
是什么
类型关键词struct提供定义一种结构性的类型方式。这种类型的定义分析如下:
名称 | 事物描述 | Rust语言描述 |
---|---|---|
结构性事物 | 类别 | struct |
事物名称 | 人 | Person |
事物属性 | 姓名,年龄 | name: string, age:u32 |
从上图所示,可以理解到,结构类型关键词struct将一组不同的数据类型作为整体在一起分析和处理。
同时还可以看到,在Rust语言里,结构类型关键词struct可以将这种结构性事物以两种不同的表达形式进行定义。它们分别称之为:C语言形式和元组形式。图上左边的C语言形式是以哈希结构表达的类型,而图上右边的元组形式是以数组结构表达的类型。
类型关键词struct
的私有性
Rust语言规定,Ⓓ 默认情况下,关键词struct定义的类型及其属性都是私有的,默认实例代码如下所示:
# #![allow(unused_variables)] #fn main() { struct Person { name: String, age: u32, } #}
C语言形式的类型关键词struct
代码
这里通过下面的代码,说明如下内容:
- 使用关键词mod,关键词
struct
定义结构类型的方式。 - 使用关键词pub,实现关键词
struct
定义的类型及其属性公开性。 - 使用结构类型属性的公开性,实现结构类型的实例化方式。
- 结构类型的实例调用结构类型的属性手法。
- 使用宏方法
assert_eq!
,验证实例调用结果的正确性。
mod trait_exerci { pub struct ClikeStructType { // data: u32, pub data: u32, } } // cargo run --example pub_field fn main() { let instance = trait_exerci::ClikeStructType { data: 0 }; let data = instance.data; assert_eq!(0, data); }
元组形式的类型关键词struct
通过下面的代码,可以学习到这些知识:
- 使用关键词
mod
,关键词struct定义结构类型的方式。
ⓡ 注意:元组形式的类型关键词struct
定义的类型是以分号结束的,而C语言形式的类型关键词struct
代码是没有分号的。 - 使用关键词
pub
,实现关键词struct
定义的类型及其属性公开性。 - 使用结构类型属性的公开性,实现结构类型的实例化方式。两种形式的类型不同的。
- 结构类型的实例调用结构类型的属性手法。元组形式的类型是以其属性的顺序号实现调用的,而C语言形式的类型是以其公开性属性实现调用的。
- 使用宏方法
assert_eq!
,验证实例调用结果的正确性。
mod trait_exerci { pub struct TupleStructType (pub u32); } // cargo run --example tuple_struct fn main() { let instance = trait_exerci::TupleStructType(0); let data = instance.0; assert_eq!(0, data); }