首页 >后端开发 >Golang >如何在 Go 中高效地存储映射中的值列表?

如何在 Go 中高效地存储映射中的值列表?

Patricia Arquette
Patricia Arquette原创
2024-12-23 03:08:16627浏览

How to Efficiently Store Lists of Values within Maps in Go?

在 Go 中使用列表和映射

在 Go 中创建字符串到值列表的映射涉及利用容器/中的数据结构列出包。下面是说明该过程的代码片段:

package main

import (
    "fmt"
    "container/list"
)

func main() {
    // Create a map of string to list
    x := make(map[string]*list.List)

    // Assign a new list to a key in the map
    x["key"] = list.New()

    // Push a value to the list
    x["key"].PushBack("value")

    // Retrieve the first value from the list associated with the key
    fmt.Println(x["key"].Front().Value)
}

此代码演示了如何创建将字符串键与值列表关联的映射。它初始化映射,在键“key”下向其中添加一个新列表,将一个值推送到列表,最后从列表中检索第一个值。

使用切片的替代方法

将列表与地图结合使用的另一种方法是使用切片。由于其简单性和效率,切片在 Go 中更常用。使用切片的代码如下所示:

package main

import "fmt"

func main() {
    // Create a map of string to string slices
    x := make(map[string][]string)

    // Append values to the slice associated with the key
    x["key"] = append(x["key"], "value")
    x["key"] = append(x["key"], "value1")

    // Retrieve the first and second values from the slice
    fmt.Println(x["key"][0])
    fmt.Println(x["key"][1])
}

在此代码中,映射将字符串键与字符串切片相关联。值被附加到键下的切片中,然后检索并打印第一个和第二个值。

以上是如何在 Go 中高效地存储映射中的值列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn