new() 和struct{} 初始化的使用场景有那些

aiaa5505 · 2017-10-20 10:26:20 · 1367 次点击

两种方式个人都不推荐,在工程中,很多时候需要通过构造函数完成一些除了赋值之外的初始化,比如注册到一个单例、加入一个事件回调。由于 go 没有伴生对象,以及更多的可见性封装,因此只有强制性的通过统一命名的函数来实现。 我们在项目中,更多采用:

  //对象的简单赋值,尤其是针对多个属性时,确保一致
func  NewXXX()*XXX{
//todo
}

```go //从内存或库中赋值 ··· func LoadXXX ()XXX{ } 因为没有多态,当参数不同时,不得不追加 *ByYYY的后缀。

#3
更多评论

更多是习惯问题吧,我更倾向 struct 这种形式。

#1

new得到的是指针

new(AA)==&AA{}

#2