diff --git a/client.go b/client.go index 2980ead..706b994 100644 --- a/client.go +++ b/client.go @@ -204,11 +204,11 @@ func (c *Client) SyncCheck(info *LoginInfo, response *WebInitResponse) (*http.Re params.Add("uin", strconv.Itoa(info.WxUin)) params.Add("deviceid", GetRandomDeviceId()) params.Add("_", strconv.FormatInt(time.Now().Unix(), 10)) - var syncKeyStringSlice []string + var syncKeyStringSlice = make([]string, response.SyncKey.Count) // 将SyncKey里面的元素按照特定的格式拼接起来 - for _, item := range response.SyncKey.List { + for index, item := range response.SyncKey.List { i := fmt.Sprintf("%d_%d", item.Key, item.Val) - syncKeyStringSlice = append(syncKeyStringSlice, i) + syncKeyStringSlice[index] = i } syncKey := strings.Join(syncKeyStringSlice, "|") 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("lang", "zh_CN") path.RawQuery = params.Encode() - addMemberList := make([]string, 0) - for _, friend := range friends { - addMemberList = append(addMemberList, friend.UserName) + addMemberList := make([]string, len(friends)) + for index, friend := range friends { + addMemberList[index] = friend.UserName } content := map[string]interface{}{ "ChatRoomName": group.UserName, @@ -609,9 +609,9 @@ func (c *Client) RemoveMemberFromChatRoom(req *BaseRequest, info *LoginInfo, gro params.Add("fun", "delmember") params.Add("lang", "zh_CN") params.Add("pass_ticket", info.PassTicket) - delMemberList := make([]string, 0) - for _, friend := range friends { - delMemberList = append(delMemberList, friend.UserName) + delMemberList := make([]string, len(friends)) + for index, friend := range friends { + delMemberList[index] = friend.UserName } content := map[string]interface{}{ "ChatRoomName": group.UserName, diff --git a/items.go b/items.go index a1f4d41..86869e1 100644 --- a/items.go +++ b/items.go @@ -120,10 +120,10 @@ type UserDetailItem struct { type UserDetailItemList []UserDetailItem func NewUserDetailItemList(members Members) UserDetailItemList { - var list UserDetailItemList - for _, member := range members { + var list = make(UserDetailItemList, len(members)) + for index, member := range members { item := UserDetailItem{UserName: member.UserName, EncryChatRoomId: member.EncryChatRoomId} - list = append(list, item) + list[index] = item } return list } diff --git a/user.go b/user.go index 14a159c..629a77e 100644 --- a/user.go +++ b/user.go @@ -394,18 +394,18 @@ func (s *Self) forwardMessage(msg *SentMessage, users ...*User) error { // 转发给好友 func (s *Self) ForwardMessageToFriends(msg *SentMessage, friends ...*Friend) error { - var users []*User - for _, friend := range friends { - users = append(users, friend.User) + var users = make([]*User, len(friends)) + for index, friend := range friends { + users[index] = friend.User } return s.forwardMessage(msg, users...) } // 转发给群组 func (s *Self) ForwardMessageToGroups(msg *SentMessage, groups ...*Group) error { - var users []*User - for _, group := range groups { - users = append(users, group.User) + var users = make([]*User, len(groups)) + for index, group := range groups { + users[index] = group.User } return s.forwardMessage(msg, users...) }