Go 语言切片 (Slice)

切片简介

  • 什么是切片
Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片 (“动态数组”)

切片操作

  • 创建切片
  1. // 1.创建切片
  2. var slice1 []type
  3. //2.切片的基本操作
  4. 1)追加
  5. var slice1 []int
  6. fmt.Println(slice1)
  7. slice1 = append(slice1, 1)
  8. fmt.Println(slice1)
  9. 2copy
  10. var slice2 = make([]int, len(slice1))
  11. copy(slice2, slice1)
  12. fmt.Println(slice2)
  13. fmt.Println(slice1)
  14. 3)截取
  15. slice3 := []int{
  16. 1, 2, 3, 4,
  17. }
  18. fmt.Println(slice3[:3])
Copy

切片与数组的关系

在 golang 中切片实质就是数组的一种,是对数组的一种抽象,在代码中的体现则是 数组 — 指定长度,超出范围报错 切片 — 不指定长度

Go 语言范围 (Range)

range 简介

  • range 的作用
中 range 关键字用于 for 循环中迭代 数组 (array)、切片 (slice)、通道 (channel) 或集合 (map) 的元素。在数组和切片中它返回元素的索引和索引对应的值

使用范围的语法

  • 遍历切片
  1. //遍历切片
  2. for k, v := range slice3 {
  3. fmt.Println(k, v)
  4. }
Copy
  • 遍历字符串
range 也可以遍历字符串,返回的值不是字符串本身,而是字符对应的 unicode 码
  1. stringTest := "test"
  2. for k, v := range stringTest {
  3. fmt.Println(k, v)
  4. }
Copy

Go 语言 Map (集合)

Map 简介

  • Map 的定义与特点
键值对的集合

Map 的基本操作

  • 创建 Map
  1. //创建Map
  2. m := make(map[string]string)
  3. m2 := map[string]string{
  4. "test": "test",
  5. }
Copy
  • 插入、删除、查找元素
  1. 1 插入
  2. m["test"] = "test"
  3. 2)删除
  4. delete(m2,"test")
  5. 3)查找元素
  6. m["test"]
Copy

Map 的遍历

  • 遍历所有键值对
  1. for k, v := range map1 {
  2. fmt.Println(k, v)
  3. }
Copy
  • 仅遍历键或值
  1. for _, v := range map1 {
  2. fmt.Println(k, v)
  3. }