相互递归类型
对象、元组和引用可以模拟相互依赖的非常复杂的数据结构; 它们是 相互递归的 。在Nim中,这些类型只能在单个类型部分中声明。(即任何其他因为需要任意符号先行减慢编译速度的类型。)
示例:
- type
- Node = ref object # 对具有以下字段的对象的引用:
- le, ri: Node # 左右子树
- sym: ref Sym # 叶节点包含Sym的引用
- Sym = object # 符号
- name: string # 符号名
- line: int # 符号声明的行
- code: Node # 符号的抽象语法树