01-布尔类型
布尔类型 — The Rust Reference
2 分钟阅读
译文 · 基于 The Rust Reference
r[type]
r[type.intro] Rust 程序中的每个变量、项和值都有一个类型。值的类型定义了保存该值的内存如何被解释,以及可以对它执行哪些操作。
r[type.builtin] 内置类型与语言紧密集成,其方式并非平凡,无法用用户定义类型来完全模拟。
r[type.user-defined] 用户定义类型的能力有限。
r[type.kinds] 类型列表如下:
r[type.name]
r[type.name.syntax]
Type ->
TypeNoBounds
| ImplTraitType
| TraitObjectType
TypeNoBounds ->
ParenthesizedType
| ImplTraitTypeOneBound
| TraitObjectTypeOneBound
| TypePath
| TupleType
| NeverType
| RawPointerType
| ReferenceType
| ArrayType
| SliceType
| InferredType
| QualifiedPathInType
| BareFunctionType
| MacroInvocation
r[type.name.intro] 上文 [Type] 文法规则所定义的类型表达式是引用类型的语法。它可以引用:
r[type.name.sequence]
r[type.name.path]
r[type.name.pointer]
r[type.name.inference]
r[type.name.grouped]
r[type.name.trait]
r[type.name.never]
r[type.name.macro-expansion]
r[type.name.parenthesized]
r[type.name.parenthesized.syntax]
ParenthesizedType -> `(` Type `)`
r[type.name.parenthesized.intro]
在某些情况下,类型的组合可能产生歧义。在类型外加括号可避免歧义。例如,引用类型中用于类型边界的 + 运算符,其边界作用范围并不清楚,因此必须使用括号。需要这种消歧的文法规则使用 [TypeNoBounds] 规则,而不是 [Type][grammar-Type]。
| |
r[type.recursive]
r[type.recursive.intro]
指名类型——结构体、枚举和联合体——可以是递归的。也就是说,每个 enum 变体或 struct/union 字段都可以直接或间接地引用包围它的 enum 或 struct 类型本身。
r[type.recursive.constraint] 这种递归有如下限制:
type Rec = &'static [Rec]。递归类型及其使用示例:
| |
布尔类型 — The Rust Reference
数值类型 — The Rust Reference
字符类型 — The Rust Reference
字符串切片类型 — The Rust Reference
Never 类型 — The Rust Reference
元组类型 — The Rust Reference
数组类型 — The Rust Reference
切片类型 — The Rust Reference
结构体类型 — The Rust Reference
枚举类型 — The Rust Reference
联合体类型 — The Rust Reference
函数项类型 — The Rust Reference
闭包类型 — The Rust Reference
指针类型 — The Rust Reference
函数指针类型 — The Rust Reference
Trait 对象类型 — The Rust Reference
impl Trait 类型 — The Rust Reference
类型参数 — The Rust Reference
推断类型 — The Rust Reference