名称
实体是一种语言结构,可以在源程序中以某种方式引用,通常通过路径。实体包括类型、项目、泛型参数、变量绑定、循环标签、生命周期、字段、属性和lint。
声明是一种语法结构,可以引入一个名称来引用一个实体。实体名称在作用域内有效,即可以引用该名称的源文本区域。
有些实体是在源代码中显式声明的,而有些实体是作为语言或编译器扩展的一部分隐式声明的。
路径用于引用一个实体,可能在另一个作用域中。生命周期和循环标签使用专用语法,使用前导引号。
名称被隔离到不同的命名空间中,允许不同命名空间中的实体共享相同的名称而不会发生冲突。
名称解析是编译时将路径、标识符和标签绑定到实体声明的过程。
对某些名称的访问可能会根据其可见性而受到限制。
显式声明的实体
在源代码中显式引入名称的实体是
- 项目:
- 表达式:
- 泛型参数
- 更高等级的特征边界
let
语句模式绑定macro_use
属性可以从另一个包引入宏名称macro_export
属性可以为宏引入一个别名到包根目录
隐式声明的实体
以下实体由语言隐式定义,或由编译器选项和扩展引入
- 语言前奏:
- 内置属性
- 标准库前奏项目、属性和宏
- 标准库包在根模块中
- 外部包由编译器链接
- 工具属性
- Lints 和 工具 lint 属性
- 派生助手属性在项目中有效,无需显式导入
'static
生命周期
此外,包根模块没有名称,但可以使用某些路径限定符或别名来引用。