golang 在Golang中生成给定长度的随机字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 在Golang中生成给定长度的随机字符串相关的知识,希望对你有一定的参考价值。

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func randString(length int) string {
	const charset = "abcdefghijklmnopqrstuvwxyz" +
		"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
	rs := rand.New(
		rand.NewSource(time.Now().UnixNano()))
	b := make([]byte, length)
	for i := range b {
		b[i] = charset[rs.Intn(len(charset))]
	}
	return string(b)
}

func main() {
	fmt.Printf("%s\n", randString(32))
}

golang中生成随机数

golang中生成随机数可以使用rand提供的相关接口,但是需要注意的是,rand必须要指定一个种子,一般采用当前时间的纳秒。

func New(src Source) *Rand 
	s64, _ := src.(Source64)
	return &Randsrc: src, s64: s64


func NewSource(seed int64) Source 
	var rng rngSource
	rng.Seed(seed)
	return &rng

通过上述两个接口,生成一个Rand对象,然后通过他来生成随机数:

random := rand.New(rand.NewSource(time.Now().UnixNano()))
	for i:=0;i<30;i++ 
		fmt.Printf("%d " ,random.Intn(9))
	

func (r *Rand) Intn(n int)指定生成一个在区间[0,n)的整数

func (r *Rand) Float32() float32返回一个[0.0,1.0)的随机小叔

以上是关于golang 在Golang中生成给定长度的随机字符串的主要内容,如果未能解决你的问题,请参考以下文章

golang中生成随机数

golang中生成随机数

在 Go 语言中生成固定长度的随机数

如何从不包括某些给定数字的数组中生成随机数[重复]

在熊猫中生成给定范围内的随机日期

具有给定长度的Java随机数[重复]