淺談幾種常見語言的命名空間(Namespace)
命名空間提供了一種從邏輯上組織類的方式,防止命名沖突。
幾種常見語言
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的硬傷,和那些優(yōu)雅的語言相比。蘋果官方建議兩個字母作為前綴的類名是為官方的庫和框架準備的,而對于作為第三方開發(fā)者,官方建議使用3個或者更多的字母作為前綴去命名我們的類。
PHP
namespace Vendor\Package\.....
它強調第一級Vendor就應該是唯一性標識,意味著你要擁有一個{Vendor}.com 的頂級域名,才可以保證自己項目的絕對唯一性。比如,當我想到這一點時,我立馬去注冊了一個meanir.com的域名來防身。
相關文章
C++實現(xiàn)LeetCode(99.復原二叉搜索樹)
這篇文章主要介紹了C++實現(xiàn)LeetCode(99.復原二叉搜索樹),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-07-07C++實現(xiàn)LeetCode(2.兩個數(shù)字相加)
這篇文章主要介紹了C++實現(xiàn)LeetCode(兩個數(shù)字相加),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-07-07C語言數(shù)據(jù)(整數(shù)、浮點數(shù))在內存中的存儲
之前對c語言數(shù)據(jù)存儲一直不太明白,最近仔細研究了一番,所以下面這篇文章主要給大家介紹了關于C語言數(shù)據(jù)(整數(shù)、浮點數(shù))在內存中存儲的相關資料,需要的朋友可以參考下2021-06-06