java namespace是什么,讓我們一起了解一下?
namespace是許多編程語言使用的一種代碼組織的形式,通過命名空間來分類,區別不同的代碼功能,避免不同的代碼片段(通常由不同的人協同工作或調用已有的代碼片段)同時使用時由于不同代碼間變量名相同而造成沖突。
我們如何用好namespace?
1、谷歌的代碼風格規范中建議我們不要隨便把變量、類型之類的放到全局命名空間中。因為如果是幾千個工程師協同完成任務,代碼達到上億行時,要使程序能運行的話,必須解決命名沖突的問題,大家都為了省事而把變量都定義到全局命名空間中則會帶來很多麻煩。
2、在.cc文件中使用匿名namespace,以避免鏈接時命名沖突。但不要在.h文件中使用匿名namespace。
3、不要使用using 指令如using namespace foo;,它容易使命名空間發生命名沖突。不要在.h文件中使用using指令,除非是僅內部使用的namespace,因為using指令會使得.h文件中的任何變量函數都可以被外界訪問。
例子如下:
//?Shorten?access?to?some?commonly?used?names?(in?a?.h?file). namespace?librarian?{ ????namespace?impl?{??//?Internal,?not?part?of?the?API. ????namespace?sidetable?=?::pipeline_diagnostics::sidetable; ????}??//?namespace?impl }//?namespace?librarian
實戰操作,具體代碼如下:
#ifdef?NO_NET_33843894_ALIAS namespace?net_33843894?{ #else namespace?net?{ #endif ????class?Socket?{ ????????... ????}; } #ifndef?NO_NET_33843894_ALIAS ????namespace?net_33843894?=?net; #endif
以上就是小編今天的分享了,希望可以幫助到大家。