📜  Golang 中的 Range 关键字(1)

📅  最后修改于: 2023-12-03 15:15:22.734000             🧑  作者: Mango

Golang 中的 Range 关键字

在 Golang 语言中,Range 是一个非常有用的内置函数。它被用于迭代数组、切片、映射和通道等数据结构中的元素。本文将为您详细介绍 Golang 中的 Range 关键字以及如何使用它来迭代不同类型的数据结构。

1. Range 迭代数组

以下是一个使用 Range 迭代数组的示例代码:

package main

import "fmt"

func main() {
    numbers := [5]int{1, 2, 3, 4, 5}
    for i, number := range numbers {
        fmt.Println("Index:", i, "Number:", number)
    }
}

上述代码使用 Range 函数来遍历数组 numbers 的所有元素,并将每个元素的索引和值打印到控制台上。输出如下所示:

Index: 0 Number: 1
Index: 1 Number: 2
Index: 2 Number: 3
Index: 3 Number: 4
Index: 4 Number: 5
2. Range 迭代切片

以下是一个使用 Range 迭代切片的示例代码:

package main

import "fmt"

func main() {
    numbers := []int{1, 2, 3, 4, 5}
    for i, number := range numbers {
        fmt.Println("Index:", i, "Number:", number)
    }
}

上述代码使用 Range 函数来遍历 numbers 切片的所有元素,并将每个元素的索引和值打印到控制台上。输出如下所示:

Index: 0 Number: 1
Index: 1 Number: 2
Index: 2 Number: 3
Index: 3 Number: 4
Index: 4 Number: 5
3. Range 迭代映射

以下是一个使用 Range 迭代映射的示例代码:

package main

import "fmt"

func main() {
    user := map[string]string{
        "name":     "Robert",
        "location": "San Francisco",
        "age":      "24",
    }
    for key, value := range user {
        fmt.Printf("%s: %s\n", key, value)
    }
}

上述代码使用 Range 函数来遍历 user 映射中的所有键和值,并将它们打印到控制台上。输出如下所示:

name: Robert
location: San Francisco
age: 24
4. Range 迭代通道

以下是一个使用 Range 迭代通道的示例代码:

package main

import "fmt"

func main() {
    numbers := make(chan int)

    go func() {
        for i := 1; i <= 5; i++ {
            numbers <- i
        }
        close(numbers)
    }()

    for n := range numbers {
        fmt.Println(n)
    }
}

上述代码使用 Range 函数来遍历通道 numbers 中的所有元素,并将它们打印到控制台上。首先,我们使用 make() 函数创建一个整数类型的通道,并使用 goroutine 来向该通道发送 1 至 5 的整数值。随后,我们关闭该通道并使用 Range 函数来遍历该通道中所有的元素,并将它们打印到控制台上。输出如下所示:

1
2
3
4
5
总结

在 Golang 中,Range 函数是一个非常有用的内置功能,可用于迭代数组、切片、映射和通道等数据类型。使用 Range 迭代函数,我们可以很容易地遍历和操作 Golang 中的不同数据结构,从而简化我们的编程任务。