Export 语句

export 语句用来转发符号,这样客户模块就不需要再导入本模块的依赖了:

  1. # 模块 B
  2. type MyObject* = object
  1. # 模块 A
  2. import B
  3. export B.MyObject
  4. proc `$`*(x: MyObject): string = "my object"
  1. # 模块 C
  2. import A
  3. # 这里 B.MyObject 被隐式导入:
  4. var x: MyObject
  5. echo $x

当被导出的符号是另一个模块时,这个模块里的所有定义都会被导出。通过使用 except 列表可以将其中的某些符号排除。

注意当导出时,只需要指定模块名:

  1. import foo/bar/baz
  2. export baz