前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年07月 Go教学课程 026-结构体

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

作者头像
愚公搬代码
发布2022-09-19 15:33:33
1030
发布2022-09-19 15:33:33
举报
文章被收录于专栏:历史专栏

文章目录


一、结构体

1.结构体的定义

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

2.结构体创建与初始化

结构体的格式

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

相关案例:

代码语言:javascript
复制
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.结构体和数组

代码语言:javascript
复制
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.结构体和切片

代码语言:javascript
复制
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

代码语言:javascript
复制
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)
	}

}
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、结构体
    • 1.结构体的定义
      • 2.结构体创建与初始化
        • 3.结构体和数组
          • 4.结构体和切片
            • 5.结构体和Map
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档