Go 语言 中 map 的遍历只能使用 for range 的形式,for range 循环返回的第一个是 map 的 key,返回的第二个是 map 的 value。
使用 for range 遍历 map,如果我们只使用一个返回参数接受,那么返回的是 map 的 key。因此 map 是无序的,因此同一个 map,每次遍历获取的结果的顺序很可能是不一致的。
for key, value := range mapName{
}
使用 for range 循环遍历 变量 名为 mapName 的 map ,其中 key 是 map 的键,value 是 map 的 key 所对应的 值。
for key := range mapName{
}
使用 for range 循环遍历map 时 ,如果只使用一个返回值接受,那么返回的是 map 的 key。
for _, value := range mapName{
}
如果我们仅仅希望获取 map 的所有的元素,那么我们可以使用 _ 忽略 key 的值。
使用 for range 循环遍历 map,获取 map 的 KEY 和 VALUE
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//使用 for range 循环遍历 map,获取 map 的 KEY 和 VALUE
mapHaiCoder := map[string]string{
"Server":"Golang",
"JavaScript":"Vue",
"Db":"Redis",
}
for key, value := range mapHaiCoder{
fmt.Println("Key =", key, "Value =", value)
}
}
程序运行后,控制台输出如下:
我们使用初始化的方式创建了一个有三个元素的 map,并使用 for range 循环的方式遍历该 map,获取了 map 的 key 和 value。
使用 for range 循环遍历 map 的所有的 key
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//使用 for range 循环遍历 map 的所有的 key
mapHaiCoder := map[string]string{
"Server":"Golang",
"JavaScript":"Vue",
"Db":"Redis",
}
for key := range mapHaiCoder{
fmt.Println("Key =", key, "Value =", mapHaiCoder[key])
}
}
程序运行后,控制台输出如下:
我们使用初始化的方式创建了一个有三个元素的 map,并使用 for range 循环的方式遍历该 map 的所有的 key,并使用 mapHaiCoder[key] 的形式获取 key 对应的 value。
如果我们仅仅希望获取 map 的所有的元素,那么我们可以使用 _ 忽略 key 的值
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//如果我们仅仅希望获取 map 的所有的元素,那么我们可以使用 _ 忽略 key 的值
mapHaiCoder := map[string]string{
"Server":"Golang",
"JavaScript":"Vue",
"Db":"Redis",
}
for _, value := range mapHaiCoder{
fmt.Println("Value =", value)
}
}
程序运行后,控制台输出如下:
我们使用初始化的方式创建了一个有三个元素的 map,并使用 for range 循环的方式遍历该 map 的所有的 key,并使用 mapHaiCoder[key] 的形式获取 key 对应的 value。
使用 for range 循环多次遍历 map,获取 KEY 的顺序可能不一致
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//使用 for range 循环多次遍历 map,获取 KEY 的顺序可能不一致
mapHaiCoder := map[string]string{
"Server":"Golang",
"JavaScript":"Vue",
"Db":"Redis",
}
for key, value := range mapHaiCoder{
fmt.Println("Key =", key, "Value =", value)
}
fmt.Println("=====================================")
for key, value := range mapHaiCoder{
fmt.Println("Key =", key, "Value =", value)
}
}
程序运行后,控制台输出如下:
我们使用初始化的方式创建了一个有三个元素的 map,并两次使用了 for range 循环的方式遍历该 map,我们发现第一次获取的 map 的 key 的顺序与第二次获取的 map 的 key 的顺序是不一致的,由此可以看出 map 是无序的。
Go 语言中 map 的遍历只能使用 for range 的形式,for range 循环返回的第一个是 map 的 key,返回的第二个是 map 的 value。
使用 for range 遍历 map,如果我们只使用一个返回参数接受,那么返回的是 map 的 key。因此 map 是无序的,因此同一个 map,每次遍历获取的结果的顺序很可能是不一致的。for range 循环遍历 map 语法:
for key, value := range mapName{
}
for range 循环遍历 map key 语法:
for key := range mapName{
}