我是高朗的新手。我这里有这个例子 - https://go.dev/play/p/lusSZk5be4b我正在尝试从同一父结构的元素之一更新全局父结构。我原以为这个程序可能会因为从它自己的孩子更新父结构而产生问题,但这似乎工作正常。我不明白这是否是正确的行为并且在 golang 中被接受,或者根本不应该进行这种从孩子更新父母的行为。任何帮助表示赞赏。谢谢。
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
您实际上并不是在替换父项,而是在替换全局变量。如果您保留对原始父项的引用,您会发现那里的内容保持不变:
https://go.dev/play/p/FsNVdheZPfE
func main() { p = &parent{} oldParent = p ... fmt.Pritnln(oldParent) ...
即使您在子结构上有一个实际的父级并更新它(例如:https://go.dev/play/p/hELKFB7DWc-),原始引用仍然会有子级,但子级将有一个父级没有孩子。
因此,总而言之,您只是在更新完全有效的参考资料。这在代码中是否有意义,或者您可能会丢失一个不同的重要参考。
- 1 回答
- 0 关注
- 59 浏览
添加回答
举报
0/150
提交
取消