golang各种遍历方法包

在golang中,遍历是常见的操作,因为很多时候我们需要对数据进行处理或操作。而对于不同类型的数据结构,我们有不同的遍历方法,例如数组、切片、映射等。本文将详细介绍golang中常见的各种遍历方法及其使用场景。
遍历数组/切片
for循环遍历
使用for循环是最常见的遍历数组或切片的方法。以下是一个示例代码:
package main
import "fmt"
func main() {
arr := [3]int{1, 2, 3}
for i := 0; i < len(arr); i++ {
fmt.Println(arr[i])
}
slice := []int{4, 5, 6}
for i := 0; i < len(slice); i++ {
fmt.Println(slice[i])
}
}
运行结果:
1
2
3
4
5
6
for range遍历
使用for range遍历数组或切片可以同时获得索引和值。以下是一个示例代码:
package main
import "fmt"
func main() {
arr := [3]int{1, 2, 3}
for index, value := range arr {
fmt.Printf("index: %d, value: %d\n", index, value)
}
slice := []int{4, 5, 6}
for index, value := range slice {
fmt.Printf("index: %d, value: %d\n", index, value)
}
}
运行结果:
index: 0, value: 1
index: 1, value: 2
index: 2, value: 3
index: 0, value: 4
index: 1, value: 5
index: 2, value: 6
使用for range遍历忽略索引
在for range中,如果不需要索引,可以使用_来忽略。以下是一个示例代码:
package main
import "fmt"
func main() {
slice := []int{4, 5, 6}
for _, value := range slice {
fmt.Println(value)
}
}
运行结果:
4
5
6
遍历映射
for range遍历
使用for range遍历映射可以同时获得键和值。以下是一个示例代码:
package main
import "fmt"
func main() {
m := map[string]int{
"a": 1,
"b": 2,
"c": 3,
}
for key, value := range m {
fmt.Printf("key: %s, value: %d\n", key, value)
}
}
运行结果:
key: a, value: 1
key: b, value: 2
key: c, value: 3
遍历通道
for range遍历通道
使用for range遍历通道可以从通道中读取值,直到通道关闭。以下是一个示例代码:
package main
import "fmt"
func main() {
ch := make(chan int)
go func() {
ch <- 1
ch <- 2
ch <- 3
close(ch)
}()
for value := range ch {
fmt.Println(value)
}
}
运行结果:
1
2
3
遍历字符串
循环遍历
使用for循环遍历字符串可以逐个字符读取。
极客笔记