在新的声明中设置值

  • 本文关键字:设置 声明 go
  • 更新时间 :
  • 英文 :


是否可以在new类型的声明中包含值。

type Vertex struct {
    X, Y int
}
func main() {
    v := new( Vertex{ 0, 0} ) // Like so
    fmt.Println( v )
    // Instead of :
    v = new(Vertex) 
    v.X, v.Y = 12, 4 // extra line for initializing the values of X and Y 
    fmt.Println( v )
}

或者因为go使"顶点{val,val}"成为一个文字值,而不是一个基本的顶点类型,这是不可能的?

您实际上并不需要"new",只需编写:

v := Vertex{1,2}

如果您希望结构的所有成员都设置为其类型的零值(例如,0对于int,nil表示指针,""表示字符串等),它甚至更简单:

v := Vertex{} // same as Vertex{0,0}

您也只能初始化一些成员,而其他成员的值为零:

v := Vertex{Y:1} // same as Vertex{0,1}

请注意,使用这些变量,v将是"顶点"类型的变量。如果您想要指向顶点的指针,请使用:

v := &Vertex{1,2}

最新更新