Go语言没有构造函数,但是我们可以使用结构体初始化的过程来模拟实现构造函数

    1. package main
    2. import "fmt"
    3. type Student struct {
    4. name string
    5. age int
    6. sex byte
    7. addr string
    8. }
    9. // 定义模拟构造函数
    10. func NewStudent(name string, age int, sex byte, addr string) *Student {
    11. return &Student{
    12. name: name,
    13. age: age,
    14. sex: sex,
    15. addr: addr,
    16. }
    17. }
    18. func changeAge(s *Student) {
    19. s.age = 23
    20. }
    21. func main() {
    22. s := NewStudent("sgg", 22, 1, "jiangsu")
    23. changeAge(s) // 不传地址会报错
    24. fmt.Println(s.age) // 23
    25. }