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

标签 go

我有这样的结构

type Node struct {
    data int
    next *Node
}

var root Node;

我想创建一个tmp节点,然后把地址传给root.next,go怎么写这种逻辑?

root.next = Node

最佳答案

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

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

您还可以获取指向新对象的指针。

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

然后把它们放在一起。

root.next = &Node {
    data: 1
}

还有一个 new 运算符,它等同于 &Node{},因此它不是很方便,因为您需要稍后分配字段值。

关于go - C++逻辑的 "new"运算符在go中如何表达?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47340580/

相关文章:

go - 生成Swagger文档时发生ParseFile错误

go - 当 channel 接收到新值时无限循环被终止

go - 无法检索 Office 365 的仅应用程序 token

arrays - 要从列表中添加或删除的 Golang 映射或结构

json - 当左侧部分是数​​字时如何在golang中解码json

google-app-engine - Go 中的 AppEngine 标准环境 Pub/Sub 上下文

concurrency - `Go is a concurrent lang` 是什么意思?

JSON Unmarshal 预期响应和错误消息

go - golang 中的悬挂 goroutine

go - 如何在golang中编写asm代码 "bsrl"