- 2.4 new
- 链接
- 链接
2.4 new
尽管没有构造函数,go有一个内置的函数new,可以用来分配一个类型需要的内存。new(X)和&X{}是等效的:
goku := new(Saiyan)// 等效goku := &Saiyan{}
用那种方式取决于你,但是你会发现,当需要去初始化结构体字段时,大多数人更喜欢使用后者,因为后者更易读:
goku := new(Saiyan)goku.name = "goku"goku.power = 9001//对比goku := &Saiyan {name: "goku",power: 9000,}
无论你选择那种方式,如果你选择上面的工厂模式,你可以隐藏一些代码细节,但是需要留意任何内存分配细节。
链接
- 目录
- 上一节:构造函数
- 下一节:结构体字段
