命名空间是用来组织和重用代码的,那么你对命名空间了解多少呢?以下是由小编整理关于什么是命名空间的内容,希望大家喜欢!
NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。
(资料图)
通常来说,命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。使用扩展标记语言的时候,XML的命名空间是所有元素类别和属性的集合。元素类别和属性的名字是可以通过唯一XML命名空间来唯一。
在XML里,任何元素类别或者属性因此分为两部分名字,一个是命名空间里的名字另一个是它的本地名。在XML里,命名空间通常是一个统一资源识别符(URI)的名字。而URI只当名字用。主要目的是为了避免名字的冲突。
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
一 :
二: 由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:
1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下: std::cout << std::hex << 3.4 << std::endl;
2、使用using关键字。 using std::cout; using std::endl; using std::cin; 以上程序可以写成 cout << std::hex << 3.4 << endl;
3、最方便的就是使用using namespace std; 例如: using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写: cout <
在struts2中
在struts2里,namespace是package里的一个属性,用来标记action的访问路径。注意:只有package的namespace才能标记路径而不是name属性。在struts2里,存在着一个是默认namespace-"",若package不指定namespace,则package里的action就使用默认namespace。若访问action时没有指定namespace则struts2会先在根namespace-"/"里查找action,找不到再到默认namespace里查找action。再找不到就会报错,也就是说struts2只会查找两层namespace。
在XML中
命名空间提供避免元素命名冲突的方法。
命名冲突
在 XML(标准通用标记语言下的一个子集) 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
这个 XML 文档携带着某个表格中的信息:
Apples | Bananas |
这个 XML 文档携带有关桌子的信息(一件家具):
假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的