定义:名字空间是组织、归类、标识一组具名对象的名字,是模块化编程的重要基础。
作用:
在名字空间内部定义的对象名字由名字空间管理。引用外部名字空间的名字时需要在对象名字前添加名字空间前缀。不同的名字空间中可以有相同的名字而互不干扰,有效的避免了名字污染。一个名字空间可以包含另一个名字空间,名字之间使用成员操作符“.”连接,称为名字空间路径。主要目的是用来组织和重用代码。
名字空间,顾名思义,就是叫这个名字的一个目录,不同的名字里,可能会有相同的功能,如console下有open功能,io下也有open功能。可以看做是一个个不同的目录。所以,名字空间叫web.layout.debug,对应的目录就是web\layout\debug\。这样就代表,使用一个功能,先把他所在的根目录import进来,他的根目录就成了这个代码中的namespace,然后通过.来逐次的找到对应的目录下,使用这个函数。函数就是把预先写好的功能封装起来,作用对象用一个形式上的代号先占位一下,这个代号叫做形参,用的时候通过(),在括号内把实际要这个封装好的功能要操作的对象传进去就可以用了。然后这个括号内的实际内容会给到功能里,代替形参的位置来运行。
定义名字空间语法:
namespace NAME {
//成员,名字内部空间代码
}
名字空间内可以嵌套名字空间,访问方式为“名字空间.内部名字空间.成员”,内嵌的名字空间内的功能,要访问顶层名字空间要使用..操作符。“..”作为前缀,则该名字空间为全局名字。
============================================================
特殊的名字空间:global和self:
1、global
global为默认的全局名字空间,当aau代码文件加载时,默认都运行在global名字空间。
2、self
self表示当前名字空间。
变量的默认名字空间为global名字空间,并可以使用namespace改变指定代码块的名字空间。可以使用self关键字访问当前名空间。使用..操作符访问global名字空间。
=============================================================
import方式导入库文件。
标准库与内核库: