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
以上就是小编今天的分享了,希望可以帮助到大家。