优化切片内存分配

This commit is contained in:
eatMoreApple 2021-07-31 17:51:41 +08:00
parent c46fb58824
commit 1dab95b4ee
3 changed files with 18 additions and 18 deletions

View File

@ -204,11 +204,11 @@ func (c *Client) SyncCheck(info *LoginInfo, response *WebInitResponse) (*http.Re
params.Add("uin", strconv.Itoa(info.WxUin)) params.Add("uin", strconv.Itoa(info.WxUin))
params.Add("deviceid", GetRandomDeviceId()) params.Add("deviceid", GetRandomDeviceId())
params.Add("_", strconv.FormatInt(time.Now().Unix(), 10)) params.Add("_", strconv.FormatInt(time.Now().Unix(), 10))
var syncKeyStringSlice []string var syncKeyStringSlice = make([]string, response.SyncKey.Count)
// 将SyncKey里面的元素按照特定的格式拼接起来 // 将SyncKey里面的元素按照特定的格式拼接起来
for _, item := range response.SyncKey.List { for index, item := range response.SyncKey.List {
i := fmt.Sprintf("%d_%d", item.Key, item.Val) i := fmt.Sprintf("%d_%d", item.Key, item.Val)
syncKeyStringSlice = append(syncKeyStringSlice, i) syncKeyStringSlice[index] = i
} }
syncKey := strings.Join(syncKeyStringSlice, "|") syncKey := strings.Join(syncKeyStringSlice, "|")
params.Add("synckey", syncKey) params.Add("synckey", syncKey)
@ -587,9 +587,9 @@ func (c *Client) AddMemberIntoChatRoom(req *BaseRequest, info *LoginInfo, group
params.Add("pass_ticket", info.PassTicket) params.Add("pass_ticket", info.PassTicket)
params.Add("lang", "zh_CN") params.Add("lang", "zh_CN")
path.RawQuery = params.Encode() path.RawQuery = params.Encode()
addMemberList := make([]string, 0) addMemberList := make([]string, len(friends))
for _, friend := range friends { for index, friend := range friends {
addMemberList = append(addMemberList, friend.UserName) addMemberList[index] = friend.UserName
} }
content := map[string]interface{}{ content := map[string]interface{}{
"ChatRoomName": group.UserName, "ChatRoomName": group.UserName,
@ -609,9 +609,9 @@ func (c *Client) RemoveMemberFromChatRoom(req *BaseRequest, info *LoginInfo, gro
params.Add("fun", "delmember") params.Add("fun", "delmember")
params.Add("lang", "zh_CN") params.Add("lang", "zh_CN")
params.Add("pass_ticket", info.PassTicket) params.Add("pass_ticket", info.PassTicket)
delMemberList := make([]string, 0) delMemberList := make([]string, len(friends))
for _, friend := range friends { for index, friend := range friends {
delMemberList = append(delMemberList, friend.UserName) delMemberList[index] = friend.UserName
} }
content := map[string]interface{}{ content := map[string]interface{}{
"ChatRoomName": group.UserName, "ChatRoomName": group.UserName,

View File

@ -120,10 +120,10 @@ type UserDetailItem struct {
type UserDetailItemList []UserDetailItem type UserDetailItemList []UserDetailItem
func NewUserDetailItemList(members Members) UserDetailItemList { func NewUserDetailItemList(members Members) UserDetailItemList {
var list UserDetailItemList var list = make(UserDetailItemList, len(members))
for _, member := range members { for index, member := range members {
item := UserDetailItem{UserName: member.UserName, EncryChatRoomId: member.EncryChatRoomId} item := UserDetailItem{UserName: member.UserName, EncryChatRoomId: member.EncryChatRoomId}
list = append(list, item) list[index] = item
} }
return list return list
} }

12
user.go
View File

@ -394,18 +394,18 @@ func (s *Self) forwardMessage(msg *SentMessage, users ...*User) error {
// 转发给好友 // 转发给好友
func (s *Self) ForwardMessageToFriends(msg *SentMessage, friends ...*Friend) error { func (s *Self) ForwardMessageToFriends(msg *SentMessage, friends ...*Friend) error {
var users []*User var users = make([]*User, len(friends))
for _, friend := range friends { for index, friend := range friends {
users = append(users, friend.User) users[index] = friend.User
} }
return s.forwardMessage(msg, users...) return s.forwardMessage(msg, users...)
} }
// 转发给群组 // 转发给群组
func (s *Self) ForwardMessageToGroups(msg *SentMessage, groups ...*Group) error { func (s *Self) ForwardMessageToGroups(msg *SentMessage, groups ...*Group) error {
var users []*User var users = make([]*User, len(groups))
for _, group := range groups { for index, group := range groups {
users = append(users, group.User) users[index] = group.User
} }
return s.forwardMessage(msg, users...) return s.forwardMessage(msg, users...)
} }