Using语句
using语句在模块中反复使用相同的参数名称和类型提供了语法上的便利。 Instead of:
- proc foo(c: Context; n: Node) = ...
- proc bar(c: Context; n: Node, counter: int) = ...
- proc baz(c: Context; n: Node) = ...
可以告诉编译器关于名称 c 的参数应默认键入 Context ,n
应该默认为 Node 等的约定:
- using
- c: Context
- n: Node
- counter: int
- proc foo(c, n) = ...
- proc bar(c, n, counter) = ...
- proc baz(c, n) = ...
- proc mixedMode(c, n; x, y: int) =
- # 'c' 被推断为 'Context' 类型
- # 'n' 被推断为 'Node' 类型
- # 'x' and 'y' 是 'int' 类型。
using 部分使用相同的基于缩进的分组语法作为 var 或 let 部分。
请注意, using 不适用于 template ,因为无类型模板参数默认为类型 system.untyped 。
应该使用 using 声明和明确键入的参数混合参数,它们之间需要分号。