写点什么

【愚公系列】2022 年 10 月 Go 教学课程 026- 结构体

作者:愚公搬代码
  • 2022-10-12
    福建
  • 本文字数:1107 字

    阅读完需:约 4 分钟

一、结构体

1.结构体的定义

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体可以很好地管理一批有联系的数据,使用结构体可以提高程序的易读性

2.结构体创建与初始化

结构体的格式


type 结构体名 struct {    成员名 数据类型  ...................}
复制代码


相关案例:


package main
import "fmt"// 成员名称前面不能添加var.type Student struct { id int name string age int addr string}func main() { var s Student = Student{101, "愚公", 18, "福建"} fmt.Println(s) // 部分初始化 var s1 Student = Student{name: "愚公", age: 18} fmt.Println(s1)
var stu Student stu.id = 102 stu.name = "愚公" stu.age = 28 stu.addr = "南平" fmt.Println(stu)}
复制代码


3.结构体和数组

package main
import "fmt"
type Student struct { id int name string age int addr string}
func main() { var arr [3]Student = [3]Student{ Student{101, "1号", 18, "北京"}, Student{102, "2号", 18, "北京"}, Student{103, "3号", 19, "北京"}, }
fmt.Println(arr)
fmt.Println(arr[0]) fmt.Println(arr[0].age) arr[0].age = 20 fmt.Println(arr)
// 通过循环来输出结构体数组中的内容。 for i := 0; i < len(arr); i++ { fmt.Println(arr[i].age) }
for k, v := range arr { fmt.Println(k) fmt.Println(v.age) }
}
复制代码


4.结构体和切片

package main
import "fmt"
type Student struct { id int name string age int addr string}
func main() {
var s []Student = []Student{ Student{101, "张三", 18, "北京"}, Student{102, "李四", 18, "北京"}, }
fmt.Println(s[0]) fmt.Println(s[0].age) s[0].age = 20 fmt.Println(s)
// 循环遍历 for i := 0; i < len(s); i++ { fmt.Println(s[i].name) } for k, v := range s { fmt.Println(k) fmt.Println(v.id)
}
// 追加数据 s = append(s, Student{103, "王五", 20, "北京"}) fmt.Println(s)}
复制代码


5.结构体和 Map

package main
import "fmt"
type Student struct { id int name string age int addr string}
func main() { m := make(map[int]Student) m[1] = Student{101, "张三", 18, "北京"} m[2] = Student{102, "李四", 18, "北京"} fmt.Println(m) fmt.Println(m[1]) fmt.Println(m[1].name)
delete(m, 2) fmt.Println(m) for key, value := range m { fmt.Println(key) fmt.Println(value.age) }
}
复制代码



发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022-03-01 加入

该博客包括:.NET、Java、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、python、大数据等相关使用及进阶知识。查看博客过程中,如有任何问题,皆可随时沟通。

评论

发布
暂无评论
【愚公系列】2022年10月 Go教学课程 026-结构体_10月月更_愚公搬代码_InfoQ写作社区