260bb0f22d734f221b85ae8d7b47f90a.png
1、自定义一个结构体
type Vertex struct { X, Y float64}
2、初始化方法-指针:
rect1 := new(Vertex )rect2 := &Vertex {}rect3 := &Vertex {1, 2}rect4 := &Vertex {X:100, Y:200}

注意: 这几个变量全部为指向Rect结构的指针(指针变量),因为使用了new()函数和&操作符.

3、初始化方法-类型实例
a := Rect{}b := Rect{3, 4}c := Rect{X=5, Y=6}

则表示这个是一个Rect{}类型.两者是不一样的.

4、区别

下面这个例子能展现之间区别:

package mainimport "fmt" type Vertex struct { X, Y float64} func main() { rect1 := new(Vertex) rect2 := &Vertex{1, 2} fmt.Printf("%v %T %v