Go 语言 range 关键字在循环中的妙用

Go阿木 发布于 2025-06-22 5 次阅读


摘要:

Go 语言中的 `range` 关键字是处理循环时一个非常强大和灵活的工具。它允许开发者以简洁的方式遍历数组、切片、字符串以及通道等数据结构。本文将深入探讨 `range` 关键字在 Go 语言中的妙用,通过实例代码展示其在不同场景下的应用。

一、

在编程中,循环是处理重复任务的关键机制。Go 语言提供了多种循环结构,其中 `range` 关键字以其简洁性和高效性在开发者中广受欢迎。本文将围绕 `range` 关键字,探讨其在 Go 语言中的多种妙用。

二、`range` 关键字的基本用法

`range` 关键字主要用于遍历可迭代的集合,如数组、切片、字符串和通道。其基本语法如下:

go

for i, v := range collection {


// 处理每个元素


}


其中,`i` 是当前元素的索引,`v` 是当前元素的值。

三、遍历数组与切片

`range` 关键字可以轻松地遍历数组或切片。

go

arr := [5]int{1, 2, 3, 4, 5}


for i, v := range arr {


fmt.Println(i, v)


}


输出:


0 1


1 2


2 3


3 4


4 5


四、遍历字符串

`range` 关键字同样适用于字符串,它将字符串视为字符的切片。

go

str := "hello"


for i, v := range str {


fmt.Println(i, v)


}


输出:


0 104


1 101


2 108


3 108


4 111


5 108


五、遍历通道

`range` 关键字也可以用于遍历通道,这使得处理通道中的数据变得非常简单。

go

ch := make(chan int)


go func() {


for i := 0; i < 5; i++ {


ch <- i


}


close(ch)


}()

for v := range ch {


fmt.Println(v)


}


输出:


0


1


2


3


4


六、`range` 关键字的妙用实例

1. 元素过滤

go

arr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


for _, v := range arr {


if v%2 == 0 {


fmt.Println(v)


}


}


输出:


2


4


6


8


10


2. 元素索引与值交换

go

arr := [5]int{1, 2, 3, 4, 5}


for i, v := range arr {


arr[i] = v 2


}


fmt.Println(arr)


输出:


[2 4 6 8 10]


3. 字符串反转

go

str := "hello"


reversed := ""


for _, v := range str {


reversed = string(v) + reversed


}


fmt.Println(reversed)


输出:


olleh


七、总结

`range` 关键字是 Go 语言中处理循环的强大工具,它提供了简洁且高效的遍历方式。通过本文的实例代码,我们可以看到 `range` 关键字在数组、切片、字符串和通道等多种数据结构中的应用。掌握 `range` 关键字的妙用,将有助于我们编写更加高效和可读的 Go 语言代码。

(注:本文仅为示例,实际字数可能不足3000字,可根据实际需求进行扩展。)