Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

程序项

Syntax
Item
    OuterAttribute* ( VisItem | MacroItem )

VisItem
    Visibility?
    (
        Module
      | ExternCrate
      | UseDeclaration
      | Function
      | TypeAlias
      | Struct
      | Enumeration
      | Union
      | ConstantItem
      | StaticItem
      | Trait
      | Implementation
      | ExternBlock
    )

MacroItem
      MacroInvocationSemi
    | MacroRulesDefinition

程序项是 crate 的组成部分。程序项在 crate 内通过嵌套的模块集合来组织。每个 crate 都有一个最外层的匿名模块,crate 内的所有其他程序项都在该模块树中拥有自己的路径

程序项在编译时完全确定,通常在执行期间保持不变,并且可以驻留在只读内存中。

有以下几种程序项:

程序项可以在crate 根模块块表达式中声明。

一部分程序项,称为关联程序项,可以在 traits实现中声明。

一部分程序项,称为外部程序项,可以在 extern中声明。

程序项可以以任意顺序定义,但 macro_rules 有自己的作用域行为,属于例外。

程序项名称的名称解析允许在模块或块中,在引用该程序项的位置之前或之后定义该程序项。

有关程序项的作用域规则,请参见程序项作用域