如何表达" new" go中的C ++逻辑运算符?

时间:2017-11-16 23:00:36

标签: go

我有这样的结构

type Node struct {
    data int
    next *Node
}

var root Node;

我想创建一个tmp Node并将地址传递给root.next,如何在go中编写这种逻辑?

root.next = Node

1 个答案:

答案 0 :(得分:1)

Go中没有构造函数。您只需使用类型名称创建对象,就可以同时设置字段。

tmp := Node {
    data: 1
}
root.next = &tmp

您也可以使用指向新对象的指针。

tmp := &Node {
    data: 1
}
root.next = tmp

然后把它们放在一起。

root.next = &Node {
    data: 1
}

还有一个new运算符,相当于&Node{},因此它不是非常便宜,因为您需要稍后分配字段值。