go之生成随机字符串

go之生成随机字符串


前言

提示:随机字符串的用途十分广泛,验证码、随机密码等。
go语言编程math/rand对象生成随机数,生成随机数时seed种子需要播种吗?代码测试结果来验证。字符串拼接有多种方式,各方式性能如何?

代码实现

函数封装。 rand_string.go

package randUtils

import (
	"math/rand"
	"strings"
)

var CHARS = []string{
   "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
	"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
	"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}

/*RandAllString  生成随机字符串([a~zA~Z0~9])
  lenNum 长度
*/
func RandAllString(lenNum int) string {
   
	str := strings.Builder{
   }
	length := len(CHARS)
	for i := 0; i < lenNum; i++ {
   
		l := CHARS[rand.Intn(length)]
		str.WriteString(l)
	}
	return str.String()
}

/*RandNumString  生成随机数字字符串([0~9])
  lenNum 长度
*/
func RandNumString(lenNum int) string {
   
	str := strings.Builder{
   }
	length := 10
	for i := 0; i < lenNum; i++ {
   
		str.WriteString(CHARS[52+rand.Intn(length)])
	}
	return str.String()
}

/*RandString  生成随机字符串(a~zA~Z])
  lenNum 长度
*/
func RandString(lenNum int) string {
   
	str := strings.Builder{
   }
	length := 52
	for i := 0; i < lenNum; i++ {
   
		str.WriteString(CHARS[rand.Intn(length)])
	}
	return str.String()
}

函数测试。main.go

package main

import (
	"fmt"
	"mo/utils/randUtils"
	"time"
)

const GoTime = "2006-01-02 15:04:05.999999"

func main() {
   
	for i := 0; i < 100; i++ {
   
		randStr :
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值