GoLang : 如何在 golang 中对一个 struct 进行 GROUP BY 操作?

问题描述 投票:-1回答:1

我有一个结构,如下图所示。

type resources struct {
   Id int
   Start string
   End string
   Resource map[string][]string
}

我在[]resources结构中的数据如下。

1, "2020-04-27T05:30:00","2020-04-27T06:30:00", "{"room":["101","102"], equipments: ["stethescope"]}"
2, "2020-04-27T05:30:00","2020-04-27T06:30:00", "{"room":["102"], equipments: ["thermometer"]}"

现在,我需要根据开始和结束时间进行分组,以得到我想要的输出,如下图。

"{"room":["101","102"], equipments: ["stethescope","thermometer"]}"

我已经实现了这个目标,通过做一个for循环,但这听起来很昂贵,当处理较大的数据。有没有其他有效的方法可以在不循环的情况下实现这个目标?我检查了这个 https:/github.comahmetbgo-linq。 来为我的方案实现LINQ。不能为我的结构类型做。

performance linq go optimization nested-loops
1个回答
-1
投票

你可以先按开始时间对资源数组进行排序。 这样通过二进制搜索按起始日期找到你需要的条目,将是数组大小的O(ln base 2)。请看以下排序包的例子 https:/golang.orgpkgsort#example__sortKeys。

© www.soinside.com 2019 - 2024. All rights reserved.