浅谈几种常见语言的命名空间(Namespace)

Connie ·
更新时间:2024-11-10
· 945 次阅读

命名空间提供了一种从逻辑上组织类的方式,防止命名冲突。

几种常见语言

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的域名来防身。

您可能感兴趣的文章:详解C++ 动态内存分配与命名空间C++编程中的命名空间基本知识讲解C++命名空间实例解析PHP命名空间namespace定义及导入use用法详解System.Web中不存在类型或命名空间名称script 找不到System.Web.Extensions.dll引用PHP命名空间namespace的定义方法详解ASP.NET MVC命名空间时引起错误的解决方法thinkphp autoload 命名空间自定义 namespacenode.js中使用socket.io制作命名空间C++命名空间namespace的介绍与使用



命名空间 namespace

需要 登录 后方可回复, 如果你还没有账号请 注册新账号