Using语句

using语句在模块中反复使用相同的参数名称和类型提供了语法上的便利。 Instead of:

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

可以告诉编译器关于名称 c 的参数应默认键入 Contextn 应该默认为 Node 等的约定:

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

using 部分使用相同的基于缩进的分组语法作为 varlet 部分。

请注意, using 不适用于 template ,因为无类型模板参数默认为类型 system.untyped

应该使用 using 声明和明确键入的参数混合参数,它们之间需要分号。