遍历切片

切片是一个集合,可以迭代其中的元素。Golang 有个特殊的关键字 range,它可以配合关键字 for 来迭代切片里的元素

  1. num1 := []int{1, 2, 3}
  2. for index, value := range num1 {
  3. fmt.Printf("index: %d value: %d\n", index, value)
  4. }

输出的结果为

  1. index: 0 value: 1
  2. index: 1 value: 2
  3. index: 2 value: 3

当迭代切片时,关键字 range 会返回两个值。第一个值是当前迭代到的索引位置,第二个值是该位置对应元素值的一份副本。

:::warning 需要强调的是,range 创建了每个元素的副本,而不是直接返回对该元素的引用。要想获取每个元素的地址,可以使用切片变量和索引值:

:::

  1. num1 := []int{1, 2, 3}
  2. for index, _ := range num1 {
  3. num1[index] += 1
  4. }
  5. for index, value := range num1 {
  6. fmt.Printf("index: %d value: %d\n", index, value)
  7. }