#nim-lang
#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
Возможно ли использовать что-то вроде однострочного ярлыка, например
proc newNode*[T](data: T): BinaryTree[T] =
data.new(data = data)
Ответ №1:
В руководстве говорится: «Обратите внимание, что ссылочные типы данных будут равны нулю в начале процедуры и, следовательно, может потребоваться инициализация вручную» и здесь «Для выделения нового отслеживаемого объекта должна использоваться встроенная процедура new». Но если вам действительно нужно сохранить эту строку, вы можете создать шаблон:
template aNewNode(data: untyped): void =
new(result)
result.data = data
proc newNode*[T](data: T): BinaryTree[T] =
# constructor for a node
aNewNode data