shallow编译指示

shallow 编译指示会影响类型的语义:允许编译器生成浅拷贝。 这可能会导致严重的语义问题并破坏内存安全。 但是,它可以大大加快赋值,因为Nim的语义需要深拷贝序列和字符串。 这可能很昂贵,特别是如果用序列构建树结构:

  1. type
  2. NodeKind = enum nkLeaf, nkInner
  3. Node {.shallow.} = object
  4. case kind: NodeKind
  5. of nkLeaf:
  6. strVal: string
  7. of nkInner:
  8. children: seq[Node]