...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package stringutil
16
17 import (
18 "math/rand"
19 "time"
20 )
21
22
23 func UniqueStrings(slen uint, n int) (ss []string) {
24 exist := make(map[string]struct{})
25 ss = make([]string, 0, n)
26 for len(ss) < n {
27 s := RandString(slen)
28 if _, ok := exist[s]; !ok {
29 ss = append(ss, s)
30 exist[s] = struct{}{}
31 }
32 }
33 return ss
34 }
35
36
37 func RandomStrings(slen uint, n int) (ss []string) {
38 ss = make([]string, 0, n)
39 for i := 0; i < n; i++ {
40 ss = append(ss, RandString(slen))
41 }
42 return ss
43 }
44
45 const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
46
47 func RandString(l uint) string {
48 rand.Seed(time.Now().UnixNano())
49 s := make([]byte, l)
50 for i := 0; i < int(l); i++ {
51 s[i] = chars[rand.Intn(len(chars))]
52 }
53 return string(s)
54 }
55
View as plain text