当前位置:网站首页>【愚公系列】2022年07月 Go教学课程 026-结构体
【愚公系列】2022年07月 Go教学课程 026-结构体
2022-08-03 08:07:00 【愚公搬代码】
一、结构体
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)
}
}
边栏推荐
猜你喜欢
Daily practice of PMP | Do not get lost in the exam-8.2 (including agility + multiple choice)
HCIP练习03(重发布)
审批流设计
用云机器/虚拟机架设方舟游戏?
服务器资源监控工具-nmon、nmon_analyser
Charles packet capture tool learning record
Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
Logic Pro X built-in sound library list
IDEA的database使用教程(使用mysql数据库)
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
随机推荐
sqlite date field plus one day
解决移动端有纵向滚动条但是不能滚动的问题
内存模型之有序性
Docker启动mysql
wordpress: 裁剪您的图片时发生错误
并发之多把锁和活跃性
The Transformer, BERT, GPT paper intensive reading notes
分析型数据库性能测试总结
AI中台序列标注任务:三个数据集构造过程记录
Windows安装MySQL(MIS)
swiper分类菜单双层效果demo(整理)
如何让背景色在任何设备宽高都能填充整个屏幕
差分(前缀和的逆运算)
pyspark df secondary sorting
国内IT市场还有发展吗?有哪些创新好用的IT运维工具可以推荐?
推荐系统-排序层-精排模型:LR、GBDT、Wide&Deep、DCN、DIN、DIEN、MMOE、PLE
积分商城系统设计
How does Mysql query two data tables for the same fields in two tables at the same time
训练正常&异常的GAN损失函数loss变化应该是怎么样的
二进制日志过期时间设置expire_logs_days