Golang中的结构文字

时间:2014-06-09 11:18:41

标签: struct go

如果是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有何不同?

1 个答案:

答案 0 :(得分:4)

q是指向堆上分配的结构的指针。其他是相同的,并在堆栈上分配。是否列出字段名称纯粹是为了便于阅读,我建议尽可能这样做。