命名空间 namespace
2009-03-31 23:04
176 查看
命名空间(namespace)表示标识符(identifier)的上下文(context)。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。 例如,设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。由于两人在不同的公司工作,可以使用相同的工号来标识而不会造成混乱,这里每个公司就表示一个独立的命名空间。如果两人在同一家公司工作,其工号就不能相同了,否则在支付工资时便会发生混乱。 这一特点是使用命名空间的主要理由。在大型的计算机程序或文档中,往往会出现数百或数千个标识符。命名空间(或类似的方法,见“命名空间的模拟”一节)提供一隐藏区域标识符的机制。通过将逻辑上相关的标识符组织成相应的命名空间,可使整个系统更加模块化。 在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。许多现代编程语言都支持命名空间。在一些编程语言(例如C++和Python)中,命名空间本身的标识符也属于一个外层的命名空间,也即命名空间可以嵌套,构成一个命名空间树,树根则是无名的全局名空间。
在常用编程语言中的应用
在C++语言中, 命名空间使用namespace来声明,并使用{ }来界定命名空间的作用域.例:namespace foo { int bar; }
在XML中的应用
XML虽然不是一个独立的编程语言,但是它的出现使得命名空间的使用变得更为广泛。在同一个命名空间里,所有的元素名都必须唯一。声明一个命名空间使用XML保留的属性xmlns, 它的值必须是 URI (统一资源标志符) 指代. 比如 xmlns="http://www.w3.org/1999/xhtml". 注意, 事实上URI是不可读的, 但它对XML解析器来说就只是简单不过的字串. 比如, [1] 这个地址本身并不包含任何代码, 它只表示XHTML命名空间. 使用URI (比如 "http://www.w3.org/1999/xhtml") 去标示一个命名空间, 而不是用一个简短的字串 (比如"xhtml"), 这样做是为了减少不同命名空间标示符冲突的可能性.
相关文章推荐
- Ext.namespace 命名空间的解析
- C++ 命名空间namespace .
- 浅谈几种常见语言的命名空间(Namespace)
- 关于 liferay 框架 后台需要获取不带namespace命名空间参数的 方法
- Struts2 Namespace_命名空间
- C++ 命名空间namespace .
- 关于命名空间 namespace的总结
- [No0000FB]C# 命名空间(Namespace)
- 第十一节,命名空间namespace
- 命名空间问题。namespace。也会弄死人的。已经添加引用了,但还是出现,class为定义。
- 2,3 c++中 #include< >头文件 和 命名空间 Using namespace std的解释和区别
- C++ namespace 命名空间详解
- PHP命名空间(Namespace)的使用详解
- 在Razor中如何引入命名空间?("import namespace in razor view")
- PHP命名空间namespace的定义方法详解
- [ 笔记 ] PHP 命名空间(namespace)
- .Net 2.0 新功能:命名空间别名限定符(namespace alias qualifier)
- C++命名空间 namespace的作用和使用解析
- PHP命名空间(Namespace)的使用详解
- thinkphp autoload 命名空间自定义 namespace