结构体没有构造函数,你可以创建一个函数返回一个相应类型的实例代替(类似一个工厂):
func NewSaiyan(name string, power int) *Saiyan {
return &Saiyan{
Name: name,
Power: power,
}
}
这种模式会导致开发者犯一些错误。另外,这有点轻微的语法变化;其次,让人觉得不好区分。
我们的工厂函数没有必要返回一个指针;下面代码是完全有效的:
func NewSaiyan(name string, power int) Saiyan {
return Saiyan{
Name: name,
Power: power,
}
}