0
点赞
收藏
分享

微信扫一扫

Golang入门到项目实战 | golang构造函数

前行的跋涉者 2022-03-12 阅读 130

golang没有构造函数的概念,可以使用函数来模拟构造函数的功能。

例如

package main

import "fmt"

type Person struct {
    name string
    age  int
}

func NewPerson(name string, age int) (*Person, error) {
    if name == "" {
        return nil, fmt.Errorf("name 不能为空")
    }

    if age < 0 {
        return nil, fmt.Errorf("age 不能小于0")
    }
    return &Person{name: name, age: age}, nil
}

func main() {
    person, err := NewPerson("tom", 20)
    if err == nil {
        fmt.Printf("person: %v\n", *person)
    }
}

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
person: {tom 20}
举报

相关推荐

0 条评论