Go 语言 中要获取 map 中的元素,除了使用 遍历 的方式,我们还可以使用 key 做为索引的形式来获取 map 指定 key 的元素。
根据 map 的 key 获取 map 的元素,返回两个返回值,第一个返回值是获取的值,如果 key 不存在,返回空值,第二个参数是一个 bool 值,表示获取值是否获取成功。
如果我们只使用一个值,接受 map 的返回值,那么返回的 map 的 key 对应的 value,如果我们需要判断一个 map 中的 key 是否存在,那么我们可以使用 _ 忽略返回的第一个值,然后判断返回的第二个 bool 值为 true 还是 false。
value, isOk := mapName[key]
参数 | 描述 |
---|---|
mapName | 要获取元素的 map。 |
key | 要获取的键。 |
返回值 | 描述 |
---|---|
value | 获取到的值。 |
isOk | 是否获取到值,获取到则返回 true,否则,返回 false。 |
根据 map 的 key 获取 map 的元素,第一个返回值是获取的值,第二个参数是一个 bool 值,表示获取值是否获取成功。
value := mapName[key]
只使用一个值,接受 map 的返回值,那么返回的 map 的 key 对应的 value。
if _, isOk := mapName[key]; isOk{
}else{
}
我们使用 _ 忽略返回的第一个值,然后判断返回的第二个 isOk 值为 true 还是 false,如果为 true,则表明 key 存在,否则 key 不存在。
使用 [] 加上 key 的形式,获取 map 的元素
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//使用 [] 加上 key 的形式,获取 map 的元素
mapHaiCoder := map[string]string{
"Server":"Golang",
"JavaScript":"Vue",
"Db":"Redis",
}
value, isOk := mapHaiCoder["Server"]
fmt.Println("Value =", value, "IsOk =", isOk)
}
程序运行后,控制台输出如下:
我们使用初始化的方式创建了一个有三个元素的 map,使用 [] 加上 key 的形式,获取 map 的 key 为 “Server” 的元素的值。
map 返回了两个值,第一个是 key 所对应的值,第二个是 key 是否存在的标志,isOk 为 true,表明 key 存在。
使用 [] 加上 key 的形式,获取 map 的 key 对应的元素的值
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//使用 [] 加上 key 的形式,获取 map 的 key 对应的元素的值
mapHaiCoder := map[string]string{
"Server":"Golang",
"JavaScript":"Vue",
"Db":"Redis",
}
value := mapHaiCoder["Server"]
value2 := mapHaiCoder["NotExist"]
fmt.Println("Value =", value, "Vaules =", value2)
}
程序运行后,控制台输出如下:
我们使用初始化的方式创建了一个有三个元素的 map,使用 [] 加上 key 的形式,获取 map 的 key 为 “Server” 的元素的值。
我们只用一个值来接受 map 的返回值,那么返回的就是 key 所对应的的 value,如果 key 不存在,返回空。
使用 [] 加上 key 的形式,获取 map 的元素的第二个参数,判断 key 是否存在
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//使用 [] 加上 key 的形式,获取 map 的元素的第二个参数,判断 key 是否存在
mapHaiCoder := map[string]string{
"Server":"Golang",
"JavaScript":"Vue",
"Db":"Redis",
}
value, isOk := mapHaiCoder["Server"]
value2, isOk2 := mapHaiCoder["Server2"]
fmt.Println("Value =", value, "IsOk =", isOk)
fmt.Println("Value2 =", value2, "IsOk2 =", isOk2)
}
程序运行后,控制台输出如下:
使用 key 索引的形式访问 map 的元素,返回两个值,第一个是 key 对应的元素值,第二个是一个 bool 值,表示该 key 是否存在。
我们通过第二个返回的 bool 值的真假可以判断 map 中的 key 是否存在,如果为 true,表明 map 中的 key 存在,如果为 false,表明 map 中的 key 不存在。
根据 map 的 key 获取 map 的元素,返回两个返回值,第一个返回值是获取的值,如果 key 不存在,返回空值,第二个参数是一个 bool 值,表示获取值是否获取成功。
如果我们只使用一个值,接受 map 的返回值,那么返回的 map 的 key 对应的 value。for range 循环遍历 map 语法:
for key, value := range mapName{
}
for range 循环遍历 map key 语法:
for key := range mapName{
}