什么是命名空间?-冯金伟博客园

什么是命名空间

命名空间也称名字空间、名称空间等,它表示着一个标识符(identifier)的可见范围。一个标识符可在多个名字空间中定义,它在不同名字空间中的含义是互不相干的。

这样,在一个新的名字空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他名字空间中。

例如,设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。由于两人在不同的公司工作,可以使用相同的工号来标识而不会造成混乱,这里每个公司就表示一个独立的名字空间。如果两人在同一家公司工作,其工号就不能相同了,否则在支付工资时便会发生混乱。

这一特点是使用名字空间的主要理由。在大型的计算机程序或文档中,往往会出现数百或数千个标识符。名字空间提供一隐藏区域标识符的机制。通过将逻辑上相关的标识符组织成相应的名字空间,可使整个系统更加模块化。

在编程语言中,名字空间是对作用域的一种特殊的抽象,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。

许多现代编程语言都支持名字空间。在一些编程语言(例如C++和Python)中,名字空间本身的标识符也属于一个外层的名字空间,也即名字空间可以嵌套,构成一个名字空间树,树根则是无名的全局名字空间。

函数和类的作用域可被视作隐式名字空间,它们和可见性、可访问性和对象生命周期不可分割的联系在一起。

以上就是什么是命名空间?的详细内容,更多请关注风君子博客其它相关文章!