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