多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] Go语言的结构体没有构造函数,我们可以自己实现。 例如,下方的代码就实现了一个 Student 的构造函数。 因为struct是 **值类型** ,如果结构体比较复杂的话,**值拷贝性能开销会比较大,所以该构造函数返回的是结构体指针类型,亦是推荐使用**。 ```go package main import "fmt" // Student 是学生的结构体 type Student struct { sid, age int name string course []string } // NewStudent 是学生结构体的构造函数 func NewStudent(sid, age int, name string, course []string) *Student { return &Student{ sid: sid, age: age, name: name, course: course, } } func main() { // 调用构造函数 s1 := NewStudent(1, 18, "jiaxzeng", []string{}) fmt.Printf("s1: %#v\n", s1) fmt.Printf("s1: %#v\n", *s1) } // 运行结果: // s1: &main.Student{sid:1, age:18, name:"jiaxzeng", course:[]string{}} // s1: main.Student{sid:1, age:18, name:"jiaxzeng", course:[]string{}} ```