命名空間
一组标识符的容器 / 維基百科,自由的 encyclopedia
命名空間(英語:Namespace),也稱名字空間、名稱空間等,它表示着一個標識符(identifier)的可見範圍。一個標識符可在多個命名空間中定義,它在不同命名空間中的含義是互不相干的。這樣,在一個新的命名空間中可定義任何標識符,它們不會與任何已有的標識符發生衝突,因為已有的定義都處於其他命名空間中。
例如,設Bill是X公司的員工,工號為123,而John是Y公司的員工,工號也是123。由於兩人在不同的公司工作,可以使用相同的工號來標識而不會造成混亂,這裡每個公司就表示一個獨立的命名空間。如果兩人在同一家公司工作,工號也相同,便會發生混亂。
這一特點是使用命名空間的主要理由。在大型的計算機程序或文檔中,往往會出現數百或數千個標識符。命名空間提供一隱藏區域標識符的機制。[1]通過將邏輯上相關的標識符組織成相應的命名空間,可使整個系統更加模塊化。
在編程語言中,命名空間是對作用域的一種特殊的抽象,它包含了處於該作用域內的標識符,且本身也用一個標識符來表示,這樣便將一系列在邏輯上相關的標識符用一個標識符組織了起來。許多現代編程語言都支持命名空間。在一些編程語言(例如C++和Python)中,命名空間本身的標識符也屬於一個外層的命名空間,也即命名空間可以嵌套,構成一個命名空間樹,樹根則是無名的全局命名空間。