Go 语言 的键值 for 循环 使用的是 for range 的语法形式,可以用来遍历 切片 。
for key, value := range slice{
//
}
参数 | 描述 |
---|---|
for | for range 循环使用的关键字。 |
key | for range 循环返回的切片的索引。 |
value | for range 循环返回切片的值的拷贝。 |
range | for range 循环使用的关键字。 |
slice | for range 循环需要遍历的切片数据。 |
我们使用了 for range 循环,来遍历了 slice,得到了 key 和 value。
for _, value := range data{
//
}
如果,在循环中我们不需要 key 的数据,那么我们可以使用 匿名变量 的形式,来忽略 key 的值。这里的 value 就是切片的元素的拷贝。
for value := range data{
//
}
Go 语言 for range 循环也可以支持不写 key 的情况,即只写一个 value。这里的 value 就是切片的键。
当使用 for range 循环(for range) 遍历切片时,key 返回的是切片的索引,value 返回的是索引对应的值的拷贝。
如果我们不写 key,那么返回的就是切片元素的索引,而不是切片的元素值。
使用 for range 遍历切片
package main
import "fmt"
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
// 使用for range遍历切片
var slice = make([]string, 0, 3)
slice = append(slice, "Hello")
slice = append(slice, "嗨客网")
slice = append(slice, "HaiCoder")
for key, value := range slice{
fmt.Println(key, "===========>", value)
}
}
程序运行后,控制台输出如下:
首先,我们定义了一个切片 变量 slice,接着我们使用 for range 来遍历该切片,并打印该切片的索引和索引对应的值。
使用 for range 遍历切片,忽略 key
package main
import "fmt"
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
// 使用for range遍历切片,忽略key
var slice = make([]string, 0, 3)
slice = append(slice, "Hello")
slice = append(slice, "嗨客网")
slice = append(slice, "HaiCoder")
for _, value := range slice{
fmt.Println(value)
}
}
程序运行后,控制台输出如下:
首先,我们定义了一个切片变量 slice,接着我们使用 for range 来遍历该切片,同时,我们使用了匿名变量 _
,来忽略切片的索引,最后,我们只打印了该切片的元素值。
使用 for range 遍历切片,不写 key
package main
import "fmt"
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
// 使用for range遍历切片,不写key
var slice = make([]string, 0, 3)
slice = append(slice, "Hello")
slice = append(slice, "嗨客网")
slice = append(slice, "HaiCoder")
for value := range slice{
fmt.Println(value)
}
}
程序运行后,控制台输出如下:
首先,我们定义了一个切片变量 slice,接着我们使用 for range 来遍历该切片,同时,我们没有写 key,遍历切片在不写 key 的情况下,返回的只是切片的索引,而不是切片的值。
当使用 for range 循环(for range) 遍历切片时,key 返回的是切片的索引,value 返回的是索引对应的值的拷贝。
如果我们不写 key,那么返回的就是切片元素的索引,而不是切片的元素值。