如果是Go中的结构文字,
type Vertex struct {
X, Y int
}
var (
p = Vertex{1, 2} // has type Vertex
q = &Vertex{1, 2} // has type *Vertex
r = Vertex{X: 1, Y: 2}
)
p,q和r的值为{1 2} &{1 2} {1 2}
上述三个变量的初始化方法有什么区别?变量p,q和r有何不同?
答案 0 :(得分:4)
q
是指向堆上分配的结构的指针。其他是相同的,并在堆栈上分配。是否列出字段名称纯粹是为了便于阅读,我建议尽可能这样做。