主页 > 知识库 > Go语言map用法实例分析

Go语言map用法实例分析

热门标签:网站排名优化 呼叫中心市场需求 Linux服务器 AI电销 地方门户网站 百度竞价排名 服务外包 铁路电话系统

本文实例讲述了Go语言map用法。分享给大家供大家参考。具体分析如下:

map 映射键到值:

map 在使用之前必须用 make 来创建(不是 new);一个值为 nil 的 map 是空的,并且不能赋值。

复制代码 代码如下:
package main
import "fmt"
type Vertex struct {
    Lat, Long float64
}
var m map[string]Vertex
func main() {
    m = make(map[string]Vertex)
    m["Bell Labs"] = Vertex{
        40.68433, 74.39967,
    }
    fmt.Println(m["Bell Labs"])
}

 
map 的文法跟结构体文法相似,不过键名是必须的。
复制代码 代码如下:
package main
import "fmt"
type Vertex struct {
    Lat, Long float64
}
var m = map[string]Vertex{
    "Bell Labs": Vertex{
        40.68433, -74.39967,
    },
    "Google": Vertex{
        37.42202, -122.08408,
    },
}
func main() {
    fmt.Println(m)
}

 
如果顶层类型只有类型名的话,可以在文法的元素中省略键名。
复制代码 代码如下:
package main
import "fmt"
type Vertex struct {
    Lat, Long float64
}
var m = map[string]Vertex{
    "Bell Labs": {40.68433, -74.39967},
    "Google":    {37.42202, -122.08408},
}
func main() {
    fmt.Println(m)
}

 
修改map:

在 map m 中插入或修改一个元素:

复制代码 代码如下:
m[key] = elem

获得元素:
复制代码 代码如下:
elem = m[key]

删除元素:
复制代码 代码如下:
delete(m, key)

通过双赋值检测某个键存在:
复制代码 代码如下:
elem, ok = m[key]

如果 key 在 m 中, ok 是 true。 否则,ok 是 false 并且 elem 是 map 的元素类型的零值。

同样的,当从 map 中读取某个不存在的键时,结果是 map 的元素类型的零值。

复制代码 代码如下:
package main
import "fmt"
func main() {
    m := make(map[string]int)
    m["Answer"] = 42
    fmt.Println("The value:", m["Answer"])
    m["Answer"] = 48
    fmt.Println("The value:", m["Answer"])
    delete(m, "Answer")
    fmt.Println("The value:", m["Answer"])
    v, ok := m["Answer"]
    fmt.Println("The value:", v, "Present?", ok)
}

希望本文所述对大家的Go语言程序设计有所帮助。

您可能感兴趣的文章:
  • Golang学习笔记(四):array、slice、map
  • 理解Golang中的数组(array)、切片(slice)和map
  • Go语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】
  • Go语言用map实现堆栈功能的方法
  • go语言map字典删除操作的方法
  • Go语言map字典用法实例分析
  • GO语言映射(Map)用法分析
  • Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结
  • Go语言中的Array、Slice、Map和Set使用详解
  • golang针对map的判断,删除操作示例

标签:铜川 仙桃 湖南 黄山 崇左 衡水 湘潭 兰州

巨人网络通讯声明:本文标题《Go语言map用法实例分析》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266