random string in golang

在 日 07 二月 2021 发布于 TECH SKILLS 分类 • 标签为 golang, random string • 3 min read

在学习golang的过程中,有注意到对于随机字符串的生成方式有很多种,下面就网上的罗列一下,最后一种是我最喜欢的方式,够优雅。

第一种 通用方案

最普通方案就是随机产生每个字符,所以整体字符串也是随机的。这样的好处是可以控制要使用的字符。

func init() {
    rand.Seed(time.Now().UnixNano())
}

var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")

func RandStringRunes(n int) string {
    b := make([]rune, n)
    for i := range b {
        b[i] = letterRuens[rand.Intn(len(letterRunes))]
    }
    return string(b)
}

第二种 字节替换rune

如果需求是只使用英语字母字符(包括大小写),那么我们可以使用byte替换rune,因为UTF-8编码中英语字母和byte是一一对应的 …


阅读全文