ect1 := new(Rect)
rect2 := &Rect{}
rect3 := &Rect{0, 0, 100, 200}
rect4 := &Rect{width:100, height:200}
注意这几个变量全部为指向Rect结构的指针(指针变量),因为使用了new()函数和&操作符.而如果使用方法

a := Rect{}
则表示这个是一个Rect{}类型.两者是不一样的.参考代码:

func main() {
rect1 := &Rect{0, 0, 100, 200}
rect1.x = 10

a := Rect{}
a.x = 15

fmt.Printf("%v\n%T\n", a, a)
fmt.Printf("%v\n%T\n", rect1, rect1)
}
运行结果为:

{15 0 0 0}
main.Rect
&{10 0 100 200}
*main.Rect