golang中 for range
Go语言中的for range循环是一种简洁、高效的方式来实现遍历集合元素的操作。它适用于切片(Slice)、映射(Map)和通道(Channel)等数据结构。以下是for range循环的基本语法和实用示例。
1.基本语法
for range循环的基本语法如下:
```go
for index := range collection {
    // 处理索引和元素的代码
}
```
其中,`collection`是要遍历的集合,`index`是集合元素的索引,`range`关键字表示遍历范围。
2.遍历切片
使用for range循环遍历切片示例:
```go
package main
import "fmt"
func main() {
    numbers := []int{1, 2, 3, 4, 5}
    for i, num := range numbers {
        fmt.Printf("索引:%d,元素:%d
", i, num)
    }
}
```
3.遍历映射(Map)
使用for range循环遍历映射示例:
```go
package main
import "fmt"
func main() {
    students := map[string]int{
        "Alice":  20,
        "Bob":    22,
        "Charlie": 21,
    }
    for name, age := range students {
        fmt.Printf("姓名:%s,年龄:%d
", name, age)
    }
}
```
4.遍历通道(Channel)
使用for range循环遍历通道示例:
```go
package main
import (
    "fmt"
    "time"
)
golang语法func main() {
    ch := make(chan int)
    go func() {
        ch <- 1
        ch <- 2
        ch <- 3
    }()
    for num := range ch {
        fmt.Printf("接收到的数字:%d
", num)
        time.Sleep(1 * time.Second)
    }
}
```
5.示例:遍历切片和映射
以下示例同时遍历了切片和映射:
```go
package main
import "fmt"
func main() {
    students := map[string]int{
        "Alice":  20,
        "Bob":    22,
        "Charlie": 21,
    }
    numbers := []int{1, 2, 3, 4, 5}
    for name, age := range students {
        fmt.Printf("姓名:%s,年龄:%d
", name, age)
    }
    for i, num := range numbers {
        fmt.Printf("索引:%d,元素:%d
", i, num)
    }
}
```
6.总结:for range循环的应用和优势
for range循环在Go语言中具有广泛的应用,它可以方便地遍历切片、映射和通道等数据结构。通过使用for range循环,我们可以简化代码,提高代码可读性和实用性。同时,for range循环在处理并发编程时也能发挥重要作用,如通道的发送和接收。