前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go的数据类型-复合数据类型-map(一)

go的数据类型-复合数据类型-map(一)

原创
作者头像
堕落飞鸟
发布2023-04-19 21:14:36
2770
发布2023-04-19 21:14:36
举报
文章被收录于专栏:飞鸟的专栏

在Go语言中,Map是一种无序的键值对集合,也称为字典或关联数组。Map可以用来存储任意类型的值,键必须是支持相等运算符的类型,比如整数、浮点数、字符串、指针等。

创建Map 在Go语言中,创建Map可以使用内置的make函数,语法如下:

代码语言:javascript
复制
make(map[KeyType]ValueType)

其中KeyType表示键的类型,ValueType表示值的类型。例如,创建一个存储字符串类型值的Map,可以使用如下代码:

代码语言:javascript
复制
m := make(map[string]string)

向Map中添加元素 向Map中添加元素可以使用下标操作符[],如果Key不存在,则创建一个新的键值对。示例如下:

代码语言:javascript
复制
m := make(map[string]string)
m["name"] = "Alice"
m["age"] = "18"

获取Map中的元素 获取Map中的元素可以使用下标操作符[],如果Key不存在,则返回对应类型的零值。示例如下:

代码语言:javascript
复制
m := make(map[string]string)
m["name"] = "Alice"
m["age"] = "18"

fmt.Println(m["name"])
fmt.Println(m["gender"]) // 返回空字符串

删除Map中的元素 删除Map中的元素可以使用内置的delete函数,语法如下:

代码语言:javascript
复制
delete(map, key)

其中map表示要删除元素的Map,key表示要删除的键。示例如下:

代码语言:javascript
复制
m := make(map[string]string)
m["name"] = "Alice"
m["age"] = "18"

delete(m, "age")

遍历Map 遍历Map可以使用for range循环,示例如下:

代码语言:javascript
复制
m := make(map[string]string)
m["name"] = "Alice"
m["age"] = "18"

for k, v := range m {
    fmt.Println(k, v)
}

这里的k表示键,v表示值。for range循环可以遍历Map中的每一个键值对。

Map的长度 Map的长度可以使用内置的len函数来获取,示例如下:

代码语言:javascript
复制
m := make(map[string]string)
m["name"] = "Alice"
m["age"] = "18"

fmt.Println(len(m))

示例代码:

代码语言:javascript
复制
package main

import "fmt"

func main() {
    // 创建一个Map
    m := make(map[string]string)

    // 添加元素
    m["name"] = "Alice"
    m["age"] = "18"
    m["gender"] = "female"

    // 获取元素
    fmt.Println("name:", m["name"])
    fmt.Println("gender:", m["gender"])

    // 删除元素
    delete(m, "age")

    // 遍历Map
    for k, v := range m {
        fmt.Println(k, v)
    }

    // Map的长度
    fmt.Println("len:", len(m))
}

输出结果:

代码语言:javascript
复制
name: Alice
gender: female
name Alice
gender female
len: 2

在这个示例中,我们创建了一个Map,然后向Map中添加了三个键值对。我们可以使用下标操作符[]来获取Map中的元素。我们还使用了delete函数删除了一个下面我们来看看一些常见的map操作。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档