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

2023-04-19 21:14:36 浏览数 (1)

在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操作。

go

0 人点赞