导入和模块
模块自动为其内容提供命名空间范围。模块表面上类似于类,但不同之处在于:
- 每个模块只有一个实例,它是静态分配的。
- 没有虚拟表。
- 模块不继承,没有超级模块等。
- 每个文件只有一个模块。
- 可以导入模块符号。
- 模块始终在全局范围内编译,不受周围属性或其他修饰符的影响。
- 模块可以在称为包的层次结构中组合在一起。
模块提供多种保证:
- 导入模块的顺序不会影响语义。
- 模块的语义不受导入它的影响。
- 如果模块 C 导入模块 A 和 B,则对 B 的任何修改都不会以静默方式更改依赖于 A 的 C 中的代码。