程序项
Syntax
Item →
OuterAttribute* ( VisItem | MacroItem )
VisItem →
Visibility?
(
Module
| ExternCrate
| UseDeclaration
| Function
| TypeAlias
| Struct
| Enumeration
| Union
| ConstantItem
| StaticItem
| Trait
| Implementation
| ExternBlock
)
程序项是 crate 的组成部分。程序项在 crate 内通过嵌套的模块集合来组织。每个 crate 都有一个最外层的匿名模块,crate 内的所有其他程序项都在该模块树中拥有自己的路径。
程序项在编译时完全确定,通常在执行期间保持不变,并且可以驻留在只读内存中。
有以下几种程序项:
一部分程序项,称为关联程序项,可以在 traits 和实现中声明。
一部分程序项,称为外部程序项,可以在 extern 块中声明。
程序项可以以任意顺序定义,但 macro_rules 有自己的作用域行为,属于例外。
程序项名称的名称解析允许在模块或块中,在引用该程序项的位置之前或之后定义该程序项。
有关程序项的作用域规则,请参见程序项作用域。