global编译指示

global 编译指示可以应用于proc中的变量,以指示编译器将其存储在全局位置并在程序启动时初始化它。

  1. proc isHexNumber(s: string): bool =
  2. var pattern {.global.} = re"[0-9a-fA-F]+"
  3. result = s.match(pattern)

在泛型proc中使用时,将为proc的每个实例创建一个单独的唯一全局变量。 未定义模块中创建的全局变量的初始化顺序,但所有这些变量的顺序将在其原始模块中的任何顶级变量之后以及导入模块中的任何变量之前初始化。