![FQX5`73URJI0${9{ZG]V5OM.png](https://static.studygolang.com/171020/f1705877b6ba8268fa8b0d1d5155d7a6.png)
这两种用法 一般在那些场景适合使用new 初始化那些场景适合使用 struct 初始化
更多评论
两种方式个人都不推荐,在工程中,很多时候需要通过构造函数完成一些除了赋值之外的初始化,比如注册到一个单例、加入一个事件回调。由于 go 没有伴生对象,以及更多的可见性封装,因此只有强制性的通过统一命名的函数来实现。
我们在项目中,更多采用:
```go
//对象的简单赋值,尤其是针对多个属性时,确保一致
func NewXXX()*XXX{
//todo
}
```
```go
//从内存或库中赋值
···
func LoadXXX ()*XXX{
}
因为没有多态,当参数不同时,不得不追加 **ByYYY**的后缀。
#3