使用GO取得随机字符串的代码方法示例,用了三种方法,差异也不是很大,不过可以在使用中熟悉GO的string库中的一些函数方法,三种方法包括使用字符串拼接的方法;将字符写入slice通过join连接的方法,比第一种方法看起来好些;第三种是通过先打乱slice然后从slice中截取字符串。
math/rand包
//第一种方法:取得随机字符串:使用字符串拼接
#取得随机字符串:使用字符串拼接
func getRandstring(length int) string {
if length < 1 {
return ""
}
char := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
charArr := strings.Split(char, "")
charlen := len(charArr)
ran := rand.New(rand.NewSource(time.Now().Unix()))
var rchar string = ""
for i := 1; i <= length; i++ {
rchar = rchar + charArr[ran.Intn(charlen)]
}
return rchar
}
//第二种方法:取得随机字符串:写入slice通过join连接
#取得随机字符串:写入slice通过join连接
func getRandstring2(length int) string {
if length < 1 {
return ""
}
char := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
charArr := strings.Split(char, "")
charlen := len(charArr)
ran := rand.New(rand.NewSource(time.Now().Unix()))
rchar := make([]string, 0, length)
for i := 1; i <= length; i++ {
rchar = append(rchar, charArr[ran.Intn(charlen)])
}
return strings.Join(rchar, "")
}
//第三种方法:取得随机字符串:通过打乱slice来操作
#取得随机字符串:通过打乱slice来操作
func getRandstring3(length int) string {
if length < 1 {
return ""
}
char := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
charArr := strings.Split(char, "")
ran := rand.New(rand.NewSource(time.Now().Unix()))
l := len(charArr)
for i := l - 1; i > 0; i-- {
r := ran.Intn(i)
charArr[r], charArr[i] = charArr[i], charArr[r]
}
rchar := charArr[:length]
return strings.Join(rchar, "")
}