diff --git a/README.md b/README.md index 7433b04..d8dc4c8 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,5 @@ ## 课程内容 -+ [基础语法与环境搭建](./day01/README.md) \ No newline at end of file ++ [基础语法与环境搭建](./day01/README.md) ++ [复合数据结构](./day01/README.md) \ No newline at end of file diff --git a/day02/README.md b/day02/README.md new file mode 100644 index 0000000..7ad04db --- /dev/null +++ b/day02/README.md @@ -0,0 +1,16 @@ +# 复合数据结构 + +之前讲了基础类型,接下来讲复合数据结构:数组、结构体、切片、Map, 利用基础类型组装起来的类型称为复合数据结构 + +很多现实的场景 都是复合数据结构,比如: ++ 数组: ip地址 192.168.1.1 就是4个整数的数组 ++ 切换(99): 长度不固定的数组, 一堆服务器ip ['192.168.1.1', '192.168.1.1', '192.168.1.1'] ++ HashMap(字典, Map): 键值对{'key':'value', 'key':'value'}, 属性不固定的, 服务器{'cpu':'1核', 'mem':'1G', ip: [], ...} ++ 结构体(99): 键值对{'name':'bob', 'age':'18'}, 属性固定的, 服务器{'cpu':'1核', 'mem':'1G', ip: [], ...} + +## 课程内容 + ++ [Go语言数组](./array/README.md) ++ [Go语言切片](./slice/README.md) ++ [Go语言Map](./map/README.md) ++ [Go语言结构体](./struct/README.md) \ No newline at end of file diff --git a/day02/array/README.md b/day02/array/README.md new file mode 100644 index 0000000..465fa8d --- /dev/null +++ b/day02/array/README.md @@ -0,0 +1,52 @@ +# 数组 + +![alt text](image.png) + +[课件](https://gitee.com/infraboard/go-course/blob/master/zh-cn/base/array.md) + +## 核心概念 + +根据容器里面数据类型不同,直接分配分配内存(连续的内存地址空间), 内存地址有开始和结束, 访问里面的对象, 我们需要传递索引, (这个索引会根据当前数据结构int8(一个字节) (ADDR,ADDR(+1字节)) + +由于是连续内存地址, 访问速度极高 + ++ 长度固定 ++ 类型一致(静态语言) + +```go +# 数组表示 +[]string{}, []int{}, []bool{}, +# 特殊情况 +[]any{} +``` + +## 定义数组 + +![alt text](image-1.png) + +1. 数组声明 + 初始化 +```go +// 声明数组: [长度]type +var arr [10]int64 +// 这个数组的零值是 【0,0,0,0,0,0,0,0,0,0】 +// 初始化数组 +arr = [10]int64{1,2,3,4,5,6,7,8,9,10} + +// 简短方式(声明 + 初始化) +// := 简单声明, +arr := [10]int64{1,2,3,4,5,6,7,8,9,10} + +// 动态推算大小 ... => 10, 这种方式不怎么使用 +arr := [...]int64{1,2,3,4,5,6,7,8,9,10} +``` + +2. 赋值: 基础类型的容器,表示多个 +```go +// 找到元素(数组里面的插槽), 插槽编号 就是索引(0 - 结束) +arr[0] = 1 +arr[1] = 2 +arr[2] = 3 +``` + +## 子针数组(重要: 95%) + diff --git a/day02/array/image-1.png b/day02/array/image-1.png new file mode 100644 index 0000000..b1ce8d8 Binary files /dev/null and b/day02/array/image-1.png differ diff --git a/day02/array/image.png b/day02/array/image.png new file mode 100644 index 0000000..f4b610d Binary files /dev/null and b/day02/array/image.png differ