開心生活站

位置:首頁 > IT科技 > 

java,namespace

IT科技2.5W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java namespace是什麼,讓我們一起了解一下?

namespace是許多編程語言使用的一種代碼組織的形式,通過命名空間來分類,區別不同的代碼功能,避免不同的代碼片段(通常由不同的人協同工作或調用已有的代碼片段)同時使用時由於不同代碼間變量名相同而造成衝突。

我們如何用好namespace?

1、谷歌的代碼風格規範中建議我們不要隨便把變量、類型之類的放到全局命名空間中。因爲如果是幾千個工程師協同完成任務,代碼達到上億行時,要使程序能運行的話,必須解決命名衝突的問題,大家都爲了省事而把變量都定義到全局命名空間中則會帶來很多麻煩。

2、在.cc文件中使用匿名namespace,以避免鏈接時命名衝突。但不要在.h文件中使用匿名namespace。

java 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_ALIASnamespace net_33843894 {#elsenamespace net {#endif    class Socket {        ...    };}#ifndef NO_NET_33843894_ALIAS    namespace net_33843894 = net;#endif

標籤:java namespace