初学golang
想写个一个用多个协程去随机生成字符串,然后插入数据库的demo
网上找了点包,要么在协程多的时候,容易生成连续重复的随机字符串 原因可能是在 随机的包内去用时间戳去做种子,导致过快的时候,生成的随机数一样
还有的不能去自定义随机字符串的范围 比如我想生成只包含大写字母加数字的 随机字符串 没找到好用的包
有php功底嘛,照着原来php的demo去写一个go的,问题应该不大,抱着这样的想法,就去撸了一个,当练手
package main
import (
"fmt"
"math/rand"
"time"
)
func main(){
rand.Seed(time.Now().UnixNano())
fmt.Println(randstr(8))
}
func randstr(lens int)string{
var str string
strpol := "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
for i:=0;i<lens;i++ {
num := rand.Intn(len(strpol)-1)
str = str + strpol[num:num+1]
}
return str
}
性能肯定不是最佳,毕竟go初学
应该还可以将 初始的随机范围字符串 转成数组 然后再去循环 随机取值拼接 应该要比直接对字符串进行切片,性能要好
版权属于:本文是原创文章,版权归 吾梦小站 所有。
本文链接:https://nikm.cn/archives/33.html
本站所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由地转载和修改,但请务必注明文章来源并且不可用于商业目的。