• 2.4 new
    • 链接

    2.4 new

    尽管没有构造函数,go有一个内置的函数new,可以用来分配一个类型需要的内存。new(X)&X{}是等效的:

    1. goku := new(Saiyan)
    2. // 等效
    3. goku := &Saiyan{}

    用那种方式取决于你,但是你会发现,当需要去初始化结构体字段时,大多数人更喜欢使用后者,因为后者更易读:

    1. goku := new(Saiyan)
    2. goku.name = "goku"
    3. goku.power = 9001
    4. //对比
    5. goku := &Saiyan {
    6. name: "goku",
    7. power: 9000,
    8. }

    无论你选择那种方式,如果你选择上面的工厂模式,你可以隐藏一些代码细节,但是需要留意任何内存分配细节。

    链接

    • 目录
    • 上一节:构造函数
    • 下一节:结构体字段