1. 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,
}

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

1.1. 链接

Copyright © studygolang.com 2013 all right reserved,powered by Gitbook该文件修订时间: 2017-07-21 20:21:48

results matching ""

    No results matching ""