Rust 结构体分类

文章目录

1.分类

Rust 中的结构体(struct)根据其字段定义方式,主要分为三种类型

类型 语法示例 特点 访问方式
具名字段结构体 struct User { name: String, age: u8 } 每个字段都有名称和类型,最常用。 user.name
元组结构体 struct Color(u8, u8, u8) 字段没有名称,只有类型,类似元组。 color.0, color.1
单元结构体 struct Unit; 没有任何字段。 无需访问

2.代码示例

rust 复制代码
// 1. 具名字段结构体(Named-Field Struct)
struct User {
    name: String,
    age: u8,
}

// 2. 元组结构体(Tuple Struct)
struct Color(u8, u8, u8);

// 3. 单元结构体(Unit Struct)
struct MyUnit;

fn main() {
    // 具名字段结构体实例化
    let user = User {
        name: String::from("Alice"),
        age: 30,
    };
    println!("name: {}", user.name);

    // 元组结构体实例化
    let black = Color(0, 0, 0);
    println!("black: ({}, {}, {})", black.0, black.1, black.2);

    // 单元结构体实例化
    let _unit = MyUnit;
}

3.其他相关分类方式

除了上述三种基本类型,结构体还可以从其他角度分类:

分类角度 类型 说明
可见性 pub struct(公开) struct(私有) 控制结构体是否可以被外部模块访问。
泛型 struct Point<T> { x: T, y: T } 结构体可以使用泛型参数来支持多种类型。
生命周期 struct Ref<'a, T> { ptr: &'a T } 当结构体包含引用时,需要标注生命周期参数。

4.小结

Rust 结构体根据字段定义方式分为具名字段、元组、单元三种;此外还可以按可见性、泛型、生命周期进一步分类。


参考文献

定义和举例说明结构体- Rust 程序设计语言中文版

相关推荐
qwsaedca12 小时前
在Mac上跑 Kokoro TTS经验总结
rust·mac·tts
qwsaedca12 小时前
Kokoro TTS v1.1 voices 文件格式逆向分析
rust
老猿讲编程14 小时前
【Eclipse OpenSOVD学习之五】拓扑引擎(Topology)
学习·rust·eclipse·sovd
object not found14 小时前
Nuxt4去掉body中默认的边距
开发语言·后端·rust
梦醒沉醉1 天前
4、Rust参考手册——Crate和源文件
rust
chainbees1 天前
Windows 系统 Rust 运行环境搭建
rust
k4m7v2pz1 天前
从 Python 搬到 Rust:pyglet MIDI DAW 变成 egui 鬼畜采样器的迁移复盘
开发语言·python·rust
小灰灰搞电子1 天前
Rust+Slint 实现ModbusRTU从机调试助手源码分享
开发语言·rust·modbusrtu
Source.Liu2 天前
Tauri 2.0 + Alpine.js 起步笔记(零构建方案)
rust