我有这段代码:
type X struct {
y *X
}
func main() {
x1 := &X{y: nil}
x2 := &X{y: x1}
fmt.Println(x1 == x2.y)
// true
x1 = nil
fmt.Println(x1 == nil)
fmt.Println(x2.y == nil)
// true
// false
}
如您所见,x.y是一个*X.
为什么设置x1为nil. 的价值x2.y不会变成nil?
对不起,如果我的问题很愚蠢。
这是Go playground 中代码的链接。
四季花海
皈依舞
相关分类