Go语言for range循环

Go语言for range循环教程

Go 语言 的键值 for 循环 是用的非常多的一种 for 循环的变体,即,我们在使用 for 循环遍历的时候,可以获取到 key:value 键值对的形式。

Go 语言的键值 for 循环使用的是 for range 的语法形式,类似于其他语言中的 foreach 语句,在 Go 语言里面,键值循环可以用来遍历 字符串数组切片map 以及 channel 等。

Go语言for range循环详解

语法

for key, value := range data{ // }

参数

参数 描述
for for range 循环使用的关键字。
key for range 循环返回的键。
value for range 循环返回的值的拷贝。
range for range 循环使用的关键字。
data for range 循环需要遍历的数据。

说明

我们使用了 for range 循环,来遍历了 data,得到了 key 和 value。

Go语言for range循环忽略key详解

语法

for _, value := range data{ // }

说明

如果,在循环中我们不需要 key 的数据,那么我们可以使用 匿名变量 的形式,来忽略 key 的值。

Go语言for range循环不写key详解

语法

for value := range data{ // }

说明

Go 语言 for range 循环也可以支持不写 key 的情况,即只写一个 value。

Go语言for range循环说明

数据类型 key value 说明
字符串 字符串的索引 字符串对应的索引的字符值的拷贝 如果不写 key,那么返回的是索引
数组 数组的索引 索引对应的值的拷贝 如果不写 key,那么返回的是索引
切片 切片的索引 索引对应的值的拷贝 如果不写 key,那么返回的是索引
map map 的 key value 返回的是 key 对应的值的拷贝 如果不写 key,那么返回的是 map 的值
channel value 返回的是 channel 接受的数据

案例

for range遍历字符串

使用 for range 遍历字符串

package main import "fmt" func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用for range遍历字符串 str := "Hai" for i, s := range str{ fmt.Println(i, " -----------------> ", s) } }

程序运行后,控制台输出如下:

18_golang for range字符串.png

首先,我们定义了一个字符串 变量 str,接着我们使用 for range 来遍历该字符串,并打印该字符串的索引和索引对应的值。

for range遍历字符串忽略key

使用for range遍历字符串,忽略key

package main import "fmt" func main() { fmt.Println("嗨客网(www.haicoder.net)") // for range遍历字符串忽略key str := "Hai" for _, s := range str{ fmt.Println(s) } }

程序运行后,控制台输出如下:

19_golang for range字符串.png

首先,我们定义了一个字符串变量 str,接着我们使用 for range 来遍历该字符串,同时,我们使用了匿名变量 _,来忽略字符串的索引,最后,我们只打印了该字符串的值。

for range遍历字符串不写key

使用 for range 遍历字符串,不写 key

package main import "fmt" func main() { fmt.Println("嗨客网(www.haicoder.net)") // for range遍历字符串不写key str := "Hai" for i := range str{ fmt.Println(i) } }

程序运行后,控制台输出如下:

20_golang for range字符串.png

首先,我们定义了一个字符串变量 str,接着我们使用 for range 来遍历该字符串,同时,我们没有写 key,遍历字符串在不写 key 的情况下,返回的只是字符串的索引,而不是字符串的值。

Go语言for range循环总结

Go 语言的键值 for 循环使用的是 for range 的语法形式,类似于其他语言中的 foreach 语句,在 Go 语言里面,键值循环可以用来遍历字符串、数组、切片、map 以及 channel 等。

当使用 for range 循环(for range) 遍历字符串时,key 返回的是字符串的索引,value 返回的是字符串对应的索引的字符值的拷贝。

当使用 for range 循环(for range) 遍历字符串时,不写 key 的情况下,返回的只是字符串的索引,而不是字符串的值。