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 關注
- 74 瀏覽
添加回答
舉報