Go语言没有构造函数,但是我们可以使用结构体初始化的过程来模拟实现构造函数
package main
import "fmt"
type Student struct {
name string
age int
sex byte
addr string
}
// 定义模拟构造函数
func NewStudent(name string, age int, sex byte, addr string) *Student {
return &Student{
name: name,
age: age,
sex: sex,
addr: addr,
}
}
func changeAge(s *Student) {
s.age = 23
}
func main() {
s := NewStudent("sgg", 22, 1, "jiangsu")
changeAge(s) // 不传地址会报错
fmt.Println(s.age) // 23
}