名称

keywords.md
commit: a989af055ff4fd7e1212754490fff72c3f7cc1be 本章译文最后维护日期:2020-1-25

*实体(entity)*是一种语言结构,在源程序中可以以某种方式被引用,通常是通过[路径(path)][paths]。实体包括类型程序项泛型参数变量绑定循环标签生存期字段属性和各种lints

声明(declaration)是一种句法结构,它可以引入名称来引用实体。实体的名称在相关作用域(scope)内有效。作用域是指可以引用该名称的源码区域。

有些实体是在源码中显式声明的,有些则隐式声明为语言或编译器扩展的一部分。

路径用于引用实体,该引用的实体可以在其他的作用域内。生存期和循环标签使用一个带有前导单引号的专用语法来表达

名称被分隔成不同的命名空间,这样允许不同名称空间中的实体拥有相同的名称,且不会发生冲突。

名称解析是将路径、标识符和标签绑定到实体声明的编译时过程。

对某些名称的访问可能会受到此名称的可见性的限制。

显式声明的实体

在源码中显式引入名称的实体有:

此外,宏调用属性可以通过扩展源代码到上述程序项之一来引入名称。

隐式声明的实体

以下实体由语言隐式定义,或由编译器选项和编译器扩展引入:

此外,crate 的根模块没有名称,但可以使用某些路径限定符或别名来引用。