• 2.3 构造函数
    • 链接

    2.3 构造函数

    结构体没有构造函数,你可以创建一个函数返回一个相应类型的实例代替(类似一个工厂):

    1. func NewSaiyan(name string, power int) *Saiyan {
    2. return &Saiyan{
    3. Name: name,
    4. Power: power,
    5. }
    6. }

    这种模式会导致开发者犯一些错误。另外,这有点轻微的语法变化;其次,让人觉得不好区分。

    我们的工厂函数没有必要返回一个指针;下面代码是完全有效的:

    1. func NewSaiyan(name string, power int) Saiyan {
    2. return Saiyan{
    3. Name: name,
    4. Power: power,
    5. }
    6. }

    链接

    • 目录
    • 上一节:结构体上的函数
    • 下一节:new