Can I rely on the random iteration order of maps to implement a random "pairing" of clients in a web application? I've tried looking around but can't seem to find a breakdown of how random this randomness is.
The algorithm would look something like:
var clients map[Client]struct{}
func PairClient(c Client) (Client, error) {
for m := range clients {
if m != c {
return m, nil
}
}
return nil, fmt.Errorf("lobby: insufficient number of clients")
}
Would this be sufficient when there are >1000 connected clients, or should I maintain a separate slice of clients and randomly select from that?
Aucun commentaire:
Enregistrer un commentaire