-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrand.go
83 lines (65 loc) · 2.04 KB
/
rand.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package rose
import (
"fmt"
"math/rand"
"strings"
"time"
)
func init() {
// initialize seed once (https://stackoverflow.com/a/12321192/8155097)
rand.Seed(time.Now().UnixNano())
}
// RandStr String returns a random string [a-z,A-Z,0-9] in the specified length
func RandStr(length int) string {
str := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
return RandSomeStr(str, length)
}
// RandSomeStr 随机获取指定长度的指定字符串
func RandSomeStr(s string, length int) string {
if StrIsEmpty(s) {
return ""
}
letter := []rune(s)
b := make([]rune, length)
for i := range b {
b[i] = letter[rand.Intn(len(letter))]
}
return string(b)
}
// RandNumStr 随机生成指定长度的数字字符串
func RandNumStr(length int) string {
// [用GO生成指定长度的随机字符串 - impressionw的博客 - CSDN博客](https://blog.csdn.net/impressionw/article/details/72765756)
s := make([]int, length)
//[Go生成随机数 - Cynhard的专栏 - CSDN博客](https://blog.csdn.net/u011304970/article/details/72721747)
for i := range s {
s[i] = rand.Intn(10)
}
// [go - One-liner to transform []int into string - Stack Overflow](https://stackoverflow.com/questions/37532255/one-liner-to-transform-int-into-string/37533144)
a := strings.Trim(strings.Replace(fmt.Sprint(s), " ", "", -1), "[]")
return a
}
// --------------
// RandInt 随机生成 [0,max) 内int类型数字
func RandInt(max int) int {
return rand.Intn(max)
}
// RandIntRange Int returns a random integer in range [min, max).
func RandIntRange(min, max int) int {
return min + rand.Intn(max-min)
}
// --------------
// RandInt64 随机生成 [0,max) 内的Int64随机数
func RandInt64(max int64) int64 {
return rand.Int63n(max)
}
// RandInt64Range 随机生成指定范围 [0,max) 内的随机数
func RandInt64Range(min, max int64) int64 {
return min + rand.Int63n(max-min)
}
// --------------
func RandFloat64(max float64) float64 {
return rand.Float64() * max
}
func RandFloat64Range(min, max float64) float64 {
return min + rand.Float64()*(max-min)
}