Nim 语言是否有更短的对象初始化符号?

Ale*_*hin 1 nim-lang

来自文档的示例

type
  BinaryTree*[T] = ref object # BinaryTree is a generic type with
                              # generic param ``T``
    le, ri: BinaryTree[T]     # left and right subtrees; may be nil
    data: T                   # the data stored in a node

proc newNode*[T](data: T): BinaryTree[T] =
  # constructor for a node
  new(result)
  result.data = data
Run Code Online (Sandbox Code Playgroud)

是否可以使用诸如单行快捷方式之类的东西

proc newNode*[T](data: T): BinaryTree[T] = 
  data.new(data = data)
Run Code Online (Sandbox Code Playgroud)

xbe*_*llo 5

教程说:“请注意,引用数据类型在过程开始时将为 nil,因此可能需要手动初始化”和此处“要分配新的跟踪对象,必须使用内置过程 new ”。但是,如果您确实需要保存该行,则可以制作一个模板:

template aNewNode(data: untyped): void =
  new(result)
  result.data = data

proc newNode*[T](data: T): BinaryTree[T] =
  # constructor for a node
  aNewNode data
Run Code Online (Sandbox Code Playgroud)