我正在学习 golang,在阅读描述结构的章节时,我遇到了初始化结构的不同方法。
p1 := passport{}
var p2 passport
p3 := passport{
Photo: make([]byte, 0, 0),
Name: "Scott",
Surname: "Adam",
DateOfBirth: "Some time",
}
fmt.Printf("%s\n%s\n%s\n", p1, p2, p3)
虽然这些将结构的值打印为
{ }
{ }
{ Scott Adam Some time} ,下面的代码打印了一个&符号,因为它是一个引用。
pointerp1 := &p3
fmt.Printf("%s", pointerp1)
pointerp2 := new(passport)
pointerp2.Name = "Anotherscott"
fmt.Printf("%s", pointerp2)
&{ Scott Adam Some time}&{ Anotherscott }
请帮助我解决我的疑问。
在用法中pointerp1 := &p3
,pointerp1
是指向 的引用变量p3
,它保存实际数据。同样,保存 数据的实际变量是pointerp2
什么?
使用这些不同类型的初始化的最佳场景是什么?
慕姐4208626
POPMUISE
慕斯709654
相关分类