go 如何写一个通用的方法,将一个结构体切片,根据 id 字段,转为 map 结构

2023-02-20 09:01:27 +08:00
 craftx

rt

比如:

定义结构体

    type S struct {
        ID int64
        Name string
    }

有切片

[]S{
	{
    	ID: 1,
        Name: "1",
    },
	{
    	ID: 2,
        Name: "2",
    },
}

需要转为

map[int64]S {
	1: {
   	ID: 1,
       Name: "1",
   },
   2: {
   	ID: 2,
       Name: "2",
   },
}

当然,要求这个方法是通用的

3341 次点击
所在节点    Go 编程语言
21 条回复
thinkingbullet
2023-02-21 16:31:39 +08:00
@kuqma98 panic: interface conversion: interface {} is map[int]main.Person, not map[int]interface {}, 这里出问题了:mapValue.Interface().(map[int]interface{})

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917482

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX