更新父结构参考 golang

我是高朗的新手。我这里有这个例子 - https://go.dev/play/p/lusSZk5be4b

我正在尝试从同一父结构的元素之一更新全局父结构。我原以为这个程序可能会因为从它自己的孩子更新父结构而产生问题,但这似乎工作正常。

我不明白这是否是正确的行为并且在 golang 中被接受,或者根本不应该进行这种从孩子更新父母的行为。任何帮助表示赞赏。

谢谢。


烙印99
浏览 60回答 1
1回答

拉风的咖菲猫

您实际上并不是在替换父项,而是在替换全局变量。如果您保留对原始父项的引用,您会发现那里的内容保持不变:https://go.dev/play/p/FsNVdheZPfEfunc main() {     p = &parent{}     oldParent = p     ...     fmt.Pritnln(oldParent)     ...即使您在子结构上有一个实际的父级并更新它(例如:https://go.dev/play/p/hELKFB7DWc-),原始引用仍然会有子级,但子级将有一个父级没有孩子。因此,总而言之,您只是在更新完全有效的参考资料。这在代码中是否有意义,或者您可能会丢失一个不同的重要参考。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go