From 40f2d9de1ba2f43657cbd1ba631da309e67a7ac6 Mon Sep 17 00:00:00 2001 From: linlongchen Date: Sun, 7 Jun 2020 22:46:18 +0800 Subject: [PATCH] go complice type --- _posts/go/tour_go/04复合类型/Golang基础.png | Bin 0 -> 50702 bytes .../04复合类型/moretype指针和复合类型.md | 365 ++++++++++++++++++ 2 files changed, 365 insertions(+) create mode 100644 _posts/go/tour_go/04复合类型/Golang基础.png create mode 100644 _posts/go/tour_go/04复合类型/moretype指针和复合类型.md diff --git a/_posts/go/tour_go/04复合类型/Golang基础.png b/_posts/go/tour_go/04复合类型/Golang基础.png new file mode 100644 index 0000000000000000000000000000000000000000..bf850bd6677d7c5dfce31a300225db886405a924 GIT binary patch literal 50702 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 F{|^t4({lg- literal 0 HcmV?d00001 diff --git a/_posts/go/tour_go/04复合类型/moretype指针和复合类型.md b/_posts/go/tour_go/04复合类型/moretype指针和复合类型.md new file mode 100644 index 0000000..5e53c5e --- /dev/null +++ b/_posts/go/tour_go/04复合类型/moretype指针和复合类型.md @@ -0,0 +1,365 @@ +> 对于一般的语言使用者来说 ,20% 的语言特性就能够满足 80% 的使用需求,剩下在使用中掌握。基于这一理论,Go 基础系列的文章不会刻意追求面面俱到,但该有知识点都会覆盖,目的是带你快跑赶上 Golang 这趟新车。 + +前面我们学习过 Golang 中基础数据类型,比如内置类型 `int` `string` `bool` 等,其实还有一些复杂一点点,但很好用的复合类型,类似 C 中的数组和 `struct`、C++ 中的 `map` ,今天我们就来学习 Go 中的复合类型。 + +通过本文的学习你将掌握以下知识: + +- 结构体 +- 指针类型 +- 数组和切片 +- 映射类型 + + + +## 指针 + +指针不保存实际数据的内容,而是保存了指向值的内存地址 。用 `&` 对变量取内存地址,用 `*` 来访问指向的内存。这点和 C 中的指针是一样,唯一不同的是 Go 中的指针不能运算。 + +```go + a := 3 + pa := &a // 用 `&` 对变量取内存地址 + fmt.Println("point", a, *pa) // 用 `*` 来访问指向的内存 +``` + +只声明没赋值的指针值是 `nil` ,代表空指针。 + +```go + var a0 *int // 只声明没赋值的指针是nil + if a0 == nil { + fmt.Println("point", "it is nil point") + } +``` + + + +## 结构体 + +与C中的结构体类似, 结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体。每个值称为结构体的成员,看例子: + +```go +type Test struct { + a int + b int + } +``` + +语法上的不同看到了吗? 每个结构体字段之后没有分号,没有分号写起来还是很舒服的。 + +### 初始化 + +可以在定义的时候初始化 + +```go +test := Test{1, 2} // 定义结构体变量并初始化 +``` + +初始化部分结构体字段 + +```go +t2 = Test{a: 3} //指定赋值Test.a为3 Test.b隐式赋值0 +``` + +隐式初始化 + +```go +t3 = Test{} // .a .b都隐式赋值0 +``` + +多个变量可以分组一起赋值 + +```go +var ( + t1 = Test{8, 6} + t2 = Test{a: 3} //指定赋值Test.a Test.b隐式赋值0 + t3 = Test{} // .a .b都隐式赋值0 + pt4 = &Test{8, 6} // 指针 +) +``` + + + +### 访问成员 + +通过 `.` 运算来访问结构体成员,不区分结构体类型或是结构体指针类型。 + +```go +fmt.Println("struct", st0.a, st0.b) // 通过 . 运算来访问结构体成员 +``` + + + +对于只声明没赋值的结构体,其内部变量被赋予零值,下面我们声明了 `st0` 但没有对其赋值。 + +```go +var st0 Test +fmt.Println("struct", st0.a, st0.b) //输出:struct 0 0 +``` + + + +## 数组 + + 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。 数组可以用下标访问元素,下标从 0 开始。 + +数组声明后赋值 + +```go + var strarr [2]string // 数组声明语法 + strarr[0] = "ready" + strarr[1] = "go" +``` + +声明赋值同时完成 + +```go + intarr := [5]int{6, 8, 9, 10, 7} // 声明赋值同时完成 +``` + +对于确定初始值个数的数组,可以省略数组长度 + +```go + intarr := [...]int{6, 8, 9, 10, 7} // 声明赋值同时完成 +``` + + + +## Slice 切片 + +切片是变长的序列,序列中每个元素都有相同的类型。`slice` 语法和数组很像,只是没有固定长度而已,切片底层引用一个数组对象,修改切片会修改原数组。 + +通过切片可以访问数组的部分或全部元素,正因为切片长度不是固定的,因此切片比数组更加的常用。 + +### 声明与初始化 + +#### 常规初始化 + +简短声明并初始化切片 + +```go +s0 := []int{1, 2, 3, 4, 5, 6} // 简短声明加赋值 +``` + +声明后再初始化 + +```go +var s []int // 声明切片s +s = s0 // 用切片s0初始化切片s +``` + +声明并初始化切片 + +```go +var s00 []int = s0 // 用切片s0初始化切片s +``` + +切片的零值是 `nil` + +```go +// 切片的零值是nil 空切片长度和容量都是0 +var nilslice []int +if nilslice == nil { + fmt.Println("slice", "nilslice is nil ", len(nilslice), cap(nilslice)) +} + +``` + +#### make初始化 + +除了上述的常规初始化方法,还可以用 `make` 内置函数来创建切片 + +```go +// 内建函数make创建切片,指定切片长度和容量 +// make 函数会分配一个元素为零值的数组并返回一个引用了它的切片 +s2 := make([]int, 4, 6) //创建元素都是0的切片s2, 长度为4,容量为6 第三个参数可以省略 +fmt.Println("slice", len(s2), cap(s2), s2) +``` + + + +#### 切片长度 + + 长度表示切片中元素的数目,可用内置函数 `len` 函数得到。 + +#### 切片容量 + + 容量表示切片中第一个元素到引用的底层数组结尾所包含元素个数,可用内置函数 `cap` 求得。 + + + +#### 切片区间 + +切片区间遵循「左闭右开」原则, + +```go +s0 := [5]int{6, 8, 9, 10, 7} // 数组定义 +var slice []int = intarr[1:4] // 创建切片slice 包含数组子序列 +``` + + 默认上下界。切片下界的默认值为 0,上界默认是该切片的长度。 + +```go +fmt.Println("slice", s0[:], s0[0:], s0[:5], s0[0:5]) // 这四个切片相同 +``` + + + +### 切片append操作 + +append 函数用于在切片末尾追加新元素。 + +添加元素也分两种情况。 + +#### 添加之后长度还在原切片容量范围内 + +```go +s2 := make([]int, 4, 6) //创建元素都是0的切片s2, 长度为4,容量为6 第三个参数可以省略 +s22 := append(s2, 2) // append每次都是在最后添加,所以此时,s21 s22指向同一个底层数组 +fmt.Println(s21, s22) // [0 0 0 0 2] [0 0 0 0 2] +``` +#### 添加元素之后长度超出原切片容量 + +此时会分配新的数组空间,并返回指向这个新分配的数组的切片。 + +下面例子中 s24 切片已经指向新分配的数组,s22 依然指向的是原来的数组空间,而 s24 已经指向了新的底层数组。 + +```go + s24 := append(s2, 1, 2, 3) + fmt.Println(s24, s22) // s24 [0 0 0 0 1 2 3] [0 0 0 0 2] +``` + +### 二维切片 + +可以定义切片的切片,类似其他语言中的二维数组用法。参考代码: + +```go + s3 := [][]int{ + {1, 1, 1}, + {2, 2, 2}, + } + fmt.Println(s3, s3[0], len(s3), cap(s3)) // 输出: [[1 1 1] [2 2 2]] [1 1 1] 2 2 +``` + + + +## map 映射类型 + +在 Go 中 `map` 是键值对类型,代表 `key` 和` value` 的映射关系,一个map就是一个哈希表的引用 。 + +### 定义和初始化 + +下面这样定义并初始化一个 map 变量 + +```go + m0 := map[int]string{ + 0: "0", + 1: "1", + } +``` + +也可以用内置 make 函数来初始化一个 map 变量,后续再向其中添加键值对。像下面这样: + +```go + m1 := make(map[int]string) // make 函数会返回给定类型的映射,并将其初始化备用 + if m1 != nil { + fmt.Println("map", "m1 is not nil", m1) // m1 不是nil + } + m1[0] = "1" + m1[1] = "2" +``` + +注意:只声明不初始化的map变量是 `nil` 映射,不能直接拿来用! + +```go + var m map[int]string // 未初始化的m零值是nil映射 + if m == nil { + fmt.Println("map", "m is nil", m) + } + //m[0] = "1" // 这句引发panic异常, 映射的零值为 nil 。nil映射既没有键,也不能添加键。 +``` + +### 元素读取 + +使用语法:`vaule= m[key]` 获取键 key 对应的元素 vaule 。 + +上面我们只用了一个变量来获取元素,其实这个操作会返回两个值,第一个返回值代表读书的元素,第二个返回值是代表键是否存在的 bool 类型,举例说明: + +```go + v, st := m1[0] // v是元素值,下标对应的元素存在st=true 否则st=false + _, st1 := m1[0] // _ 符号表示忽略第一个元素 + v1, _ := m1[0] // _ 符号表示忽略第二个元素 + fmt.Println(v, st, v1, st1, m1[2]) // m1[2]不存在,返回元素string的零值「空字符」 +``` + +### 删除元素 + +内置函数 `delete` 可以删除 map 元素,举例: + +``` +delete(m1, 1) // 删除键是 1 的元素 +``` + + + +## range 遍历 + +range 用于遍历 切片 或 映射。 + +### 数组或切片遍历 + +当使用` for` 循环和 `range` 遍历数组或切片时,每次迭代都会返回两个值。第一个值为当前元素的下标,第二个值为该下标所对应元素的一份副本。 + +```go +s1 := []int{1, 2, 3, 4, 5, 6} +for key, vaule := range s1 { + fmt.Println("range", key, vaule) +} + +for key := range s1 { // 只需要索引,忽略第二个变量即可 + fmt.Println("range", key) +} + +for _, vaule := range s1 { // 只需要元素值,用'_'忽略索引 + fmt.Println("range", vaule) +} +``` + + + +### map 遍历 + +当使用` for` 循环和 `range` 遍历` map` 时,每次迭代都会返回两个值。第一个值为当前元素 `key` , 第二个值是 `value`。 + +```go +m0 := map[int]string{ + 0: "0", + 1: "1", +} +fmt.Println("map", m0) + +for k, v := range m0 { // range遍历映射,返回key 和 vaule + fmt.Println("map", "m0 key:", k, "vaule:", v) +} +``` + + + + + + + +## 总结 + +通过本文的学习,我们掌握了 Golang 中基本的控制流语句,利用这些控制语句加上一节介绍的变量等基础知识,可以构成丰富的程序逻辑,你就能用 Golang 来做一些有意思的事情了。 + +感谢各位的阅读,文章的目的是分享对知识的理解,技术类文章我都会反复求证以求最大程度保证准确性,若文中出现明显纰漏也欢迎指出,我们一起在探讨中学习. + +今天的技术分享就到这里,我们下期再见。 + +----- + + + +**创作不易,白票不是好习惯,如果有收获,动动手指点个「在看」或给个「转发」是对我持续创作的最大支持** + +## +