• go语言学习-数据结构


    1、数组

    package main
    
    import "fmt"
    
    func main() {
       
    	// 数组:一组具有相同类型并且长度固定的一个数据集合
    	// 使用场景:班级,三位老师,
    	// var 数组名 = [数组长度]数组的类型{数组的数据}
    	var teacherNameArray = [3]string{
       "张宇", "张二", "张三"}
    	fmt.Println(teacherNameArray)
    	teacherAgeArray := [3]int{
       18, 19, 20}
    	fmt.Println(teacherAgeArray)
    	fmt.Println("第一位老师的名字是:", teacherNameArray[0])
    	fmt.Println("第一位老师的年龄是:", teacherAgeArray[0])
    	// 获取单个元素的格式:数组名称[下标],下标是从0开始的
    	// 修改数据:数组名称[下标] = xxx
    	teacherNameArray[2] = "dotbalo"
    	fmt.Println("修改后的数据:", teacherNameArray)
    	// teacherNameArray[3] = "数据4" // 数组的长度是不能修改的
    	fmt.Println("数组的长度是:", len(teacherNameArray))
    	for i := 0; i < len(teacherNameArray); i++ {
       
    		fmt.Printf("第%d个数据为: %s\n", i+1, teacherNameArray[i])
    	}
    	// range --> 推荐使用的,k v分别对应下标和值
    	for k, v := range teacherAgeArray {
       
    		fmt.Printf("第%d位老师的年龄是: %d\n", k+1, v)
    	}
    	// 自动推断长度
    	array3 := [...]int{
       1, 2, 3, 4, 5, 6, 7, 8, 9}
    	fmt.Println("array3的长度是:", len(array3))
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    2、切片

    2.1 切片基础使用

    package main
    
    import "fmt"
    
    func main() {
       
    	// 切片的长度是不固定的,并且可以自动扩容
    	// var 切片名称 []切片类型  slice
    	var s1 []int
    	fmt.Println("最初的切片数据:", s1)
    	// 默认的两个属性,一个是切片的长度,表示这个切片中有多少个元素
    	// 容量:表示这个切片可以放入多少个元素
    	fmt.Println("切片的默认长度是:", len(s1))
    	fmt.Println("切片的默认容量是:", cap(s1))
    	s1 = append(s1, 7275, 85266) //append是将数据添加到对应的切片中
    	fmt.Println("长度是:", len(s1))
    	fmt.Println("容量是:", cap(s1))
    	fmt.Println("数据:", s1)
    	// 第二种声明方式,指定长度
    	s2 := make([]int, 5, 10) // 如果是string类型切片,默认的数据是什么呢?
    	fmt.Println("切片的默认长度是:", len(s2))
    	fmt.Println("切片的默认容量是:", cap(s2))
    	fmt.Println("最初的切片数据:", s2)
    	s2 = append(s2, 1, 2, 3, 4, 5, 6)
    	fmt.Println("最初的切片数据:", s2)
    	// 现在的切片的容量和长度是多少?
    	// 长度自动扩容为11,如果容量超出后,容量会自动变为:容量*2
    	fmt.Println("长度是:", len(s2))
    	fmt.Println("容量是:", cap(s2))
    	s2[0] = 88  //修改数据内容
    	fmt.Println("切片的数据:", s2)
    	for k, v := range s2 {
       
    		fmt.Printf("第%d个数据是: %d\n", k+1, v)
    	}
    /*输出结果
    最初的切片数据: []
    切片的默认长度是: 0
    切片的默认容量是: 0
    长度是: 2
    容量是: 2
    数据: [7275 85266]
    切片的默认长度是: 5
    切片的默认容量是: 10
    最初的切片数据: [0 0 0 0 0]
    最初的切片数据: [0 0 0 0 0 1 2 3 4 5 6]
    长度是: 11
    容量是: 20
    切片的数据: [88 0 0 0 0 1 2 3 4 5 6]
    第1个数据是: 88
    第2个数据是: 0
    第3个数据是: 0
    第4个数据是: 0
    第5个数据是: 0
    第6个数据是: 1
    第7个数据是: 2
    第8个数据是: 3
    第9个数据是: 4
    第10个数据是: 5
    第11个数据是: 6
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    2.2 切片的元素截取和删除

    package main
    
    import "fmt"
    
    func main
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    电影太大怎么压缩变小?
    go-gf框架两个表以事务方式写入示例
    Gateway整合微服务文档:Knife4j文档请求异常、Swagger报错Failed to load API definition.
    百望云亮相服贸会 重磅发布业财税融Copilot
    开学季·东莞理工学院
    Spring Security 动态权限实现方案
    CC002:ContextCapture倾斜摄影建模流程
    Android Studio报错:connect refused
    CLR C#--线程基础
    debian10 开启rdp安装firefox并解决firefox 中文乱码
  • 原文地址:https://blog.csdn.net/qwerty1372431588/article/details/134466498