微信公众号 CCBible/Bible101/DBible 微博@基督徒百科@Bible101@歌珊地圣经引擎@如鹰展翼而上 QQ群 4619600/226112909/226112998 同步推送#今日真道圣言#

命名空間

出自基督徒百科
跳至導覽 跳至搜尋

命名空間英語Namespace)表示標識符(identifier)的上下文(context)。一個標識符可在多個命名空間中定義,它在不同命名空間中的含義是互不相干的。這樣,在一個新的命名空間中可定義任何標識符,它們不會與任何已有的標識符發生衝突,因為已有的定義都處於其它命名空間中。

例如,設Bill是X公司的員工,工號為123,而John是Y公司的員工,工號也是123。由於兩人在不同的公司工作,可以使用相同的工號來標識而不會造成混亂,這裏每個公司就表示一個獨立的命名空間。如果兩人在同一家公司工作,其工號就不能相同了,否則在支付工資時便會發生混亂。

這一特點是使用命名空間的主要理由。在大型的電腦程式文檔中,往往會出現數百或數千個標識符。命名空間(或類似的方法,見「命名空間的模擬」一節)提供一隱藏區域標識符的機制。通過將邏輯上相關的標識符組織成相應的命名空間,可使整個系統更加模塊化

編程語言中,命名空間是一種特殊的作用域,它包含了處於該作用域內的標識符,且本身也用一個標識符來表示,這樣便將一系列在邏輯上相關的標識符用一個標識符組織了起來。許多現代編程語言都支持命名空間。在一些編程語言(例如C++Python)中,命名空間本身的標識符也屬於一個外層的命名空間,也即命名空間可以嵌套,構成一個命名空間,樹根則是無名的全局名空間

函數的作用域可被視作隱式命名空間,它們和可見性、可訪問性和對象生命周期不可分割的聯繫在一起。

在常用編程語言中的應用

C++語言中,命名空間使用namespace來聲明,並使用{ }來界定命名空間的作用域.
: <source lang=cpp> namespace foo {

 int bar;

} </source>

在XML中的應用

XML雖然不是一個獨立的編程語言,但是它的出現使得命名空間的使用變得更為廣泛。

在同一個命名空間裏,所有的元素名都必須唯一。

聲明一個命名空間使用XML保留的屬性xmlns,它的值必須是URI(統一資源標誌符 Uniform Resource Identifier而非URL--Universal Resource Locator)指代.比如xmlns="http://www.w3.org/1999/xhtml".注意,事實上URI是不可讀的,但它對XML解析器來說就只是簡單不過的字串.比如,http://www.w3.org/1999/xhtml/ 這個地址本身並不包含任何代碼,它只表示XHTML命名空間.使用URI (比如"http://www.w3.org/1999/xhtml")去標示一個命名空間,而不是用一個簡短的字串 (比如"xhtml"),這樣做是為了減少不同命名空間標示符衝突的可能性.

維基百科中的應用

命名空間的模擬

參見

外部連結