Get random string with GO

The code method example of using GO to obtain a random string, using three methods, the difference is not very big, but you can be familiar with some function methods in GO's string library in use, the three methods include the method of using string splicing; The method of writing characters into slices joined by join looks better than the first method; the third method is by first shuffling the slice and then intercepting the string from the slice.

math/rand package

 

//The first method: get a random string: use string splicing

 

#取得随机字符串:使用字符串拼接
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
}

//The second method: get a random string: write the slice through the join connection

 

#取得随机字符串:写入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, "")
}

//The third method: get a random string: operate by shuffling the 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, "")
}

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=324052687&siteId=291194637