我正在试图弄清楚Go中的指针是如何工作的,我想我已经开始明白了,但这让我感到困惑,我真的不知道该搜索什么.假设我有以下功能:
func createNode(nodeInfo string) *TreeNode {
return &TreeNode{info: nodeInfo}
}
Run Code Online (Sandbox Code Playgroud)
我知道函数返回创建的struct实例的内存地址,但函数签名怎么说*TreeNode?根据我的理解,*用于取消引用指针以获取值本身,所以这里发生了什么?
也在这里:
func zero(xPtr *int) {
*xPtr = 0
}
func main() {
x := 5
zero(&x)
}
Run Code Online (Sandbox Code Playgroud)
相反的情况发生在函数接受*运算符的参数但函数本身是用&运算符调用的情况.