个人网站设计图,企业网站诊断,做外贸必须有网站吗,网站风格 颜色搭配在 Go 语言中#xff0c;结构体#xff08;struct#xff09;是一种用户自定义的数据类型#xff0c;它可以包含多种不同类型的数据组合在一起。结构体为组织和管理相关数据提供了一种有效的方式#xff0c;常用于表示现实世界中的对象或概念。如果你懂C/C#xff0c;那么… 在 Go 语言中结构体struct是一种用户自定义的数据类型它可以包含多种不同类型的数据组合在一起。结构体为组织和管理相关数据提供了一种有效的方式常用于表示现实世界中的对象或概念。如果你懂C/C那么这个数据结构理解起来挺容易的只是形式上略有不同。
结构体定义 type 结构体名 struct { 成员1 类型1 成员2 类型2 成员3 类型3 ... } type 关键字表示定义了一个新类型。struct 关键字表示新的类型是一个结构体类型结构体可以包含多个成员每个成员的类型可以相同也可以不同成员命名也区分大小写大驼峰命名外部包是否可以被引用结构体可以有自己的成员函数这里后续再补充成员函数也是要有大小写的命名大驼峰命名外部包可以引用作为函数形式参数的时候通常是传递指针类型因为结构体的内容可能会很大另外指针类型可以直接修改原始数据把修改的结果带回来所以使用的时候也要注意还有一种特殊的用法匿名结构指针变量与普通变量在访问结构体成员的时候都使用 . 的方式访问 与C语言不一样结构体支持嵌套使用最常见的例子就是解析配置 JSON 和 Yaml 内容的时候 结构体的使用
package mainimport fmttype Student struct {NumID int // 学号Name string // 姓名ClassID string // 班级Birthday string // 生日Age int // 年龄Sex string // 性别IsAccommodation bool // 是否住校 true 住校 false 不住
}func (s *Student)StudentInfoPrint() {fmt.Println(学号 , s.NumID)fmt.Println(姓名 , s.Name)fmt.Println(班级 , s.ClassID)fmt.Println(生日 , s.Birthday)fmt.Println(年龄 , s.Age)fmt.Println(性别 , s.Sex)fmt.Println(是否住校 , s.IsAccommodation)
}func main() {stu1 : Student {1, 张三, 一年级, 2020-01-12, 6, 男, true}fmt.Println( stu1 )stu1.StudentInfoPrint()var stu2 Studentfmt.Println( stu2 )stu2.StudentInfoPrint()stu3 : Student{}stu3.Name 李四fmt.Println( stu3 )stu3.StudentInfoPrint()stu4 : Student{NumID: 4,Name: 王五,ClassID: 二年级,Birthday: 2018-03-12,Age: 7,Sex: 男,}fmt.Println( stu4 )stu4.StudentInfoPrint()stu5 : new(Student)stu5.NumID 5stu5.Name 朱六stu5.Sex 女fmt.Println( stu5 )stu5.StudentInfoPrint()fmt.Println(匿名结果体使用)stu6 : struct {name stringage int}stu6.name 刘七stu6.age 10fmt.Println( stu6 )fmt.Println(name : , stu6.name)fmt.Println(age : , stu6.age)
}