likes
comments
collection
share

range 关键字概述

作者站长头像
站长
· 阅读数 18

前言

在Go中,range关键字用于迭代数组、切片、映射、通道等数据结构,使遍历操作更加方便。

内容

遍历数组

在Go语言中,使用range关键字遍历数组是一种常见且有用的操作。以下是一个示例:

package main

import "fmt"

func main() {
    // 创建一个整数数组
    numbers := [5]int{10, 20, 30, 40, 50}

    // 使用range关键字遍历数组
    fmt.Println("遍历数组:")
    for index, value := range numbers {
        fmt.Printf("索引 %d 的值是 %d\n", index, value)
    }
}

运行结果:

遍历数组:
索引 0 的值是 10
索引 1 的值是 20
索引 2 的值是 30
索引 3 的值是 40
索引 4 的值是 50

在上述示例中,我们创建了一个包含 5 个整数的数组,并使用range遍历它。range返回两个值,分别是当前元素的索引和值。

索引和值

  • index代表当前元素的索引
  • value代表当前元素的值。

你可以根据需要使用这两个值。如果选择忽视,则可以用 _ 代替。

比如:

package main

import "fmt"

func main() {
	nums := []int{2, 3, 4}
	sum := 0
	for _, num := range nums {
		sum += num
	}
	fmt.Println("sum:", sum) // sum: 9
}

遍历切片

切片是Go中常用的数据结构之一,使用range关键字可以轻松遍历切片。

package main

import "fmt"

func main() {
    // Create a string slice
    fruits := []string{"apple", "banana", "orange", "grape"}

    // Iterate through the slice using range
    for index, fruit := range fruits {
        fmt.Printf("Index %d: %s\n", index, fruit)
    }
}

运行结果:

Index 0: apple
Index 1: banana
Index 2: orange
Index 3: grape

在这个示例中,我们创建了一个字符串切片fruits,然后使用rangefor循环中遍历它。同样的,range关键字返回两个值:索引和切片中当前索引位置的元素值。我们将索引和水果名称打印出来,以展示遍历切片的效果。

遍历映射

映射(Map)是Go中用于存储键值对的数据结构。使用range关键字可以遍历映射中的键值对。

package main

import "fmt"

func main() {
    // 创建一个映射
    grades := map[string]int{
        "Alice": 95,
        "Bob":   88,
        "Carol": 72,
    }

    // 使用range关键字遍历映射
    fmt.Println("遍历映射:")
    for name, score := range grades {
        fmt.Printf("%s 的分数是 %d\n", name, score)
    }
}

运行结果:

遍历映射:
Carol 的分数是 72
Alice 的分数是 95
Bob 的分数是 88

在上述示例中,我们创建了一个映射,将学生的名字映射到他们的分数。同样的,使用range关键字遍历映射时,range会返回两个值,分别是当前键和对应的值。name代表当前键(学生的名字),score代表当前键对应的值(分数)。

总结

可以看到,range关键字是一个强大的工具,可以用于遍历数组、切片、映射等各种数据结构,很常见也很实用,当我们能够理解和运用好用range关键字后,可以提高Go语言编程的效率和便捷性。