Rust 程序设计(第 2 版)
Jim Blandy, Jason Orendorff, Leonora F. S. Tindall
软件工程师
1469 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
课程目录
已完结/共 41 讲
时长 02:41
时长 06:30
时长 10:04
时长 01:05
时长 50:06
时长 31:35
时长 34:39
时长 29:11
时长 37:15
时长 23:44
时长 44:19
时长 29:54
时长 39:01
时长 01:38
时长 01:15
时长 00:37
Rust 程序设计(第 2 版)
15
15
1.0x
00:00/00:00
登录|注册

第 10 章 枚举与模式

在计算机领域,总和类型(sum type)长期悲剧性缺位,很多事情却依然行得通,这简直不可思议(参见 Lambda 的缺位)。
——Graydon Hoare
本章的第一个主题强劲有力且非常“古老”,它能帮助你在短期内完成很多事(但要付出一定代价),并且许多文化中有关于它的传说。我要说的不是“恶魔”,而是一种用户定义数据类型,长期以来被 ML 社区和 Haskell 社区的黑客们称为总和类型、可区分的联合体(union)或代数数据类型。在 Rust 中,它们被称为枚举。与“恶魔”不同,它们相当安全,而且也不用付出多少代价。
C++ 和 C# 都有枚举,你可以使用它们来定义自己的类型,其值是一组命名常量。例如,你可以定义一个名为 Color 的类型,其值为 RedOrangeYellow 等。这种枚举也适用于 Rust,但是 Rust 的枚举远不止于此。Rust 枚举还可以包含数据,甚至是不同类型的数据。例如,Rust 的 Result<String, io::Error> 类型就是一个枚举,这样的值要么是包含 String 型的 Ok 值,要么是包含 io::ErrorErr 值。C++ 枚举和 C# 枚举则不具备这样的能力。Rust 枚举更像是 C 的联合体,但不同之处在于它是类型安全的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Rust中的枚举和模式是该编程语言的重要特性之一。枚举提供了定义自定义类型的灵活方式,而模式匹配允许开发者对不同的枚举值进行处理。本文详细介绍了枚举和模式的基本概念,包括枚举的声明、构造器的使用以及内存中的存储方式,以及带数据的枚举的使用方法,包括元组型变体和结构体型变体。此外,还讨论了Rust模式的特点,包括模式匹配的使用以及模式中的引用、移动和条件等内容。通过对枚举和模式的基础知识的介绍,读者可以全面了解Rust中这一重要特性,并学习如何在实际编程中应用它们。文章还展示了枚举在表示富数据结构和泛型枚举方面的应用,以及与其他编程语言相比,Rust在构建数据结构时的简洁性和高效性。总的来说,本文为读者提供了对Rust中枚举和模式的深入了解,以及如何在实际编程中应用它们的指导。文章还介绍了模式匹配的特性,包括匹配守卫、匹配多种可能性和使用@模式绑定等内容,为读者提供了全面的技术视角。文章内容丰富,对于想要深入了解Rust编程语言的读者来说,是一篇值得阅读的技术文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Rust 程序设计(第 2 版)》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部