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))
}

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
*/

2.2 切片的元素截取和删除

package main

import "fmt"

func main

你可能感兴趣的:(go新学习目录,golang)