是否可以在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}