命名空間提供了一種從邏輯上組織類的方式,防止命名沖突。
幾種常見語言
C++
命名空間是可以嵌套的
嵌套的命名空間是指定義在其他命名空間中的命名空間。嵌套的命名空間是一個嵌套的作用域,內層命名空間聲明的名字將隱藏外層命名空間聲明的同名成員:
int x = 20; namespace outer { int x = 10; namespace inner { int z = x; } } int main() { std::cout << outer::inner::z; // 輸出10 return 0; }
C#
嵌套的命名空間
命名空間聲明中聲明命名空間,各命名空間用”.”分隔。
例如:
namespace N1.N2{class A {}class B {}}
在語義上等效于
namespace N1{namespace N2{class A {}class B {}}}
Java
package cn.org.web3d.x3dpad
Java中的命名空間意味著你只要擁有一個獨立的頂級域名,就可以保證自己項目的絕對唯一性。
Objective-C
在Objective-C應用中的所有類名都必須是全局唯一的。命名一直是Objective-C的硬傷,和那些優雅的語言相比。蘋果官方建議兩個字母作為前綴的類名是為官方的庫和框架準備的,而對于作為第三方開發者,官方建議使用3個或者更多的字母作為前綴去命名我們的類。
PHP
namespace Vendor/Package/.....
它強調第一級Vendor就應該是唯一性標識,意味著你要擁有一個{Vendor}.com 的頂級域名,才可以保證自己項目的絕對唯一性。比如,當我想到這一點時,我立馬去注冊了一個meanir.com的域名來防身。
新聞熱點
疑難解答
圖片精選