登录
首页 >  Golang >  Go问答

对结构体进行分组操作

来源:stackoverflow

时间:2024-02-22 11:33:23 233浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《对结构体进行分组操作》,聊聊,我们一起来看看吧!

问题内容

我有一个结构如下。

type resources struct {
   id int
   start string
   end string
   resource map[string][]string
}

我在struct []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.com/ahmetb/go-linq 来为我的场景实现 linq。无法适合我的结构类型。


解决方案


您可以首先按开始时间对资源数组进行排序。这样,通过二分搜索在开始日期之前找到所需的条目将是数组大小的 O(ln base 2)。请参阅 https://golang.org/pkg/sort/#example__sortKeys 处的排序包示例

本篇关于《对结构体进行分组操作》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>