导入和模块

模块自动为其内容提供命名空间范围。模块表面上类似于类,但不同之处在于:

  • 每个模块只有一个实例,它是静态分配的。
  • 没有虚拟表。
  • 模块不继承,没有超级模块等。
  • 每个文件只有一个模块。
  • 可以导入模块符号。
  • 模块始终在全局范围内编译,不受周围属性或其他修饰符的影响。
  • 模块可以在称为包的层次结构中组合在一起。

模块提供多种保证:

  • 导入模块的顺序不会影响语义。
  • 模块的语义不受导入它的影响。
  • 如果模块 C 导入模块 A 和 B,则对 B 的任何修改都不会以静默方式更改依赖于 A 的 C 中的代码。