返回

for...range语句在数组、map、string 和 channel 中的应用

后端

for...range语句基础

for...range语句的基本语法如下:

for variable_name range expression {
  // 循环体
}

其中,variable_name是循环变量,range expression是范围表达式,指定了循环的范围,循环体是循环的执行代码块。

1. for...range语句在数组中的使用

for...range语句可以很方便地用于遍历数组中的元素。语法如下:

for index, value range array_name {
  // 循环体
}

其中,index是数组元素的索引,value是数组元素的值,array_name是数组的名称。

例如,以下代码遍历了一个名为numbers的数组,并输出每个元素的值:

package main

import "fmt"

func main() {
  numbers := []int{1, 2, 3, 4, 5}

  for index, value range numbers {
    fmt.Println("Index:", index, "Value:", value)
  }
}

输出结果为:

Index: 0 Value: 1
Index: 1 Value: 2
Index: 2 Value: 3
Index: 3 Value: 4
Index: 4 Value: 5

2. for...range语句在map中的使用

for...range语句也可以用于遍历map中的键值对。语法如下:

for key, value range map_name {
  // 循环体
}

其中,key是map的键,value是map的值,map_name是map的名称。

例如,以下代码遍历了一个名为personInfo的map,并输出每个键值对:

package main

import "fmt"

func main() {
  personInfo := map[string]string{
    "name": "John Doe",
    "age": "30",
    "city": "New York",
  }

  for key, value range personInfo {
    fmt.Println("Key:", key, "Value:", value)
  }
}

输出结果为:

Key: name Value: John Doe
Key: age Value: 30
Key: city Value: New York

3. for...range语句在string中的使用

for...range语句可以用于遍历string中的字符。语法如下:

for index, char range string_name {
  // 循环体
}

其中,index是字符的索引,char是字符的值,string_name是string的名称。

例如,以下代码遍历了一个名为str的string,并输出每个字符:

package main

import "fmt"

func main() {
  str := "Hello World"

  for index, char range str {
    fmt.Println("Index:", index, "Char:", string(char))
  }
}

输出结果为:

Index: 0 Char: H
Index: 1 Char: e
Index: 2 Char: l
Index: 3 Char: l
Index: 4 Char: o
Index: 5 Char:空格
Index: 6 Char: W
Index: 7 Char: o
Index: 8 Char: r
Index: 9 Char: l
Index: 10 Char: d

4. for...range语句在channel中的使用

for...range语句可以用于遍历channel中的值。语法如下:

for value range channel_name {
  // 循环体
}

其中,value是channel中的值,channel_name是channel的名称。

例如,以下代码创建一个channel,并使用for...range语句遍历其中的值:

package main

import "fmt"

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

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

  for value range ch {
    fmt.Println(value)
  }
}

输出结果为:

0
1
2
3
4

结论

for...range语句是Go语言中一种非常强大的循环结构,它可以方便地遍历各种数据结构。在本文中,我们介绍了for...range语句在数组、map、string和channel中的使用,并提供了相应的示例代码。希望这些知识对您有所帮助。