Using语句

在模块中反复使用相同的参数名称和类型时,using 语句提供了语法上的便利,而不必:

  1. proc foo(c: Context; n: Node) = ...
  2. proc bar(c: Context; n: Node, counter: int) = ...
  3. proc baz(c: Context; n: Node) = ...

你可以告知编译器一个名为 c 的参数默认类型为 Context , n的默认类型为 Node :

  1. using
  2. c: Context
  3. n: Node
  4. counter: int
  5. proc foo(c, n) = ...
  6. proc bar(c, n, counter) = ...
  7. proc baz(c, n) = ...
  8. proc mixedMode(c, n; x, y: int) =
  9. # 'c' 被推断为 'Context' 类型
  10. # 'n' 被推断为 'Node' 类型
  11. # 'x' 和 'y' 是 'int' 类型。

using 部分使用缩进的分组语法,与 var 或 let 部分相同。

注意, using 在 template 不适用,因为 untyped 模板参数默认是 system.untyped 类型。

使用 using 声明和显式类型的参数混合时,它们之间需要分号。