首页 > 解决方案 > 如何在 go 中的 map 中获取 for 循环中的所有数据?

问题描述

package main

type Stream struct {
    Labels  string
    Entries []Entry
}

type Entry struct {
    Timestamp time.Time
    Line      string
}

现在我已经创建了一个块地图

chunks := make(map[string]*Stream)

我正在发送一个测试数据并尝试在这里形成我的块

for _, line := range Lines {
    fmt.Println(line.Logmsg) // if I do print here I am getting all the data here 
    chunks["label"] = &Stream{
        Labels: "label"
        Entries: []Entry{
            Timestamp: time.Now(),
            Line:      line.Logmsg
        },
    },
}

fmt.Println(chunks) 

我在这里看到了 for 循环中的最后一个数据。

与第一个 println 相比,我没有看到所有数据,我在这里做错了什么吗?

标签: go

解决方案


map 中的所有插入都在同一个 key 下"label",所以最后 map 将只包含一个元素。

为每个元素使用不同的标签或使用切片。


推荐阅读