这里也可以返回值然后来用,我看老师是返回的是地址,这是为什么呢
来源:4-2 包和封装

WittChen
2022-06-04
本节的一段代码
func createNode(value int) *treeNode {
return &treeNode{value: value}
}
这样做是为了性能考虑吗?
func CreateNode(value int) Node {
node := Node{value: value}
fmt.Printf("node:%p \n", &node)
return node
}
func main() {
root := tree.CreateNode(1)
fmt.Printf("root:%p \n", &root)
}
从上面这段代码可以看到,Go中不管是传值还是返回值,应该都是会拷贝一份
写回答
1回答
-
weixin_慕沐1036126
2022-06-07
我理解主要还是看你的返回结构的大小,如果返回的是一个很大的结构,并且该函数会频繁调用,那么可能会产生一定的拷贝开销。如果返回指针就没有这种问题。
10
相似问题
老师你好,goroutine的问题
回答 3
adder 的返回值
回答 2