shallow编译指示
shallow 编译指示会影响类型的语义:允许编译器生成浅拷贝。 这可能会导致严重的语义问题并破坏内存安全。 但是,它可以大大加快赋值,因为Nim的语义需要深拷贝序列和字符串。 这可能很昂贵,特别是如果用序列构建树结构:
- type
- NodeKind = enum nkLeaf, nkInner
- Node {.shallow.} = object
- case kind: NodeKind
- of nkLeaf:
- strVal: string
- of nkInner:
- children: seq[Node]