1 回答

TA贡献1828条经验 获得超13个赞
假设您只想按位置字符串分组并从中创建结果结构,则可以使用地图:
type Chat struct {
location string
userName string
}
type Result struct {
location string
chat []Chat
}
func main() {
a := Chat{location: "Cal", userName: "user1"}
b := Chat{location: "Cal", userName: "user2"}
c := Chat{location: "IL", userName: "user3"}
x := []Chat{a, b, c}
m := make(map[string]Result)
for _, c := range x {
if val, ok := m[c.location]; ok {
chats := append(val.chat, c)
m[c.location] = Result{location: c.location, chat: chats}
} else {
m[c.location] = Result{location: c.location, chat: []Chat{c}}
}
}
for k, v := range m {
fmt.Printf("%s -> %v\n", k, v)
}
}
那会回来的
Cal -> {Cal [{Cal user1} {Cal user2}]}
IL -> {IL [{IL user3}]}
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报