
type node struct { value int left, right *node } var node2 *node fmt.Print(node2) // <nil> fmt.Print("\n") var node3 = new(node) fmt.Print(node3) // &{0 <nil> <nil>} 在学的时候发现有上面两种声明方式,node3 是个地址,node2 是个啥?
两种有啥区别?以及分别什么情况下用?
1 jybox 2020 年 1 月 10 日 node2 是一个空指针,打印出来就是 nil ; node3 是指向一个新初始化的 struct 的指针,打印出来的是这个新初始化的 struct。 |
2 iamwho 2020 年 1 月 10 日 |
3 poplar50 2020 年 1 月 10 日 via Android 第一种是声明 第二种声明加赋值 |
4 Flands OP 噢,二楼那个看懂了,感谢楼上大佬解答 |