Go语言生成随机字符串的程序


Go 语言中的字符串是字符的集合。由于 Go 语言中的字符串是不可变的,因此在生成后无法修改它们。但是,连接或添加到现有字符串可以创建新的字符串。字符串类型是 Go 语言中的内置类型,可以像其他任何数据类型一样以多种方式使用。

语法

rand.Seed(value)

Rand.Seed() 函数用于生成随机数。它接受用户输入作为参数,该参数是生成随机数的上限。

func Now() Time

Now() 函数定义在 time 包中。此函数生成当前本地时间。要使用此函数,我们必须首先在程序中导入 time 包。

func (t Time) UnixNano() int64

UnixNano() 函数定义在 time 包中。此函数用于获取自 1970 年 1 月 1 日 UTC 时间以来经过的秒数。它返回的最终结果是 64 位整数类型。

rand.Intn(n)

Intn() 函数定义在 math/rand 包中。它用于在 [0, n] 区间内生成随机数,其中 n 是用户提供的数字。如果提供的数字小于 0,则该函数会抛出错误。

func make ([] type, size, capacity)

Go 语言中的 make 函数用于创建数组/映射,它接受要创建的变量的类型、大小和容量作为参数。

rand.Read(output)

read 函数用于生成密码学安全的随机字节流。生成的随机字节被放置到 []byte 切片中,这是它接受的唯一参数。如果该函数返回错误,则不应使用它。

算法

  • 步骤 1 − 创建一个 package main 并声明 fmt(格式包)、math/rand 和 time 包

  • 步骤 2 − 创建一个常量集

  • 步骤 3 − 开始 main 函数()

  • 步骤 4 − 使用内部函数创建随机字符串

  • 步骤 5 − 使用 string() 方法将字节段转换为字符串

  • 步骤 6 − 使用 fmt.Println() 函数(其中 ln 表示换行)在控制台上打印获得的随机字符串。

示例 1

在这个例子中,我们将学习如何使用 math/rand 包创建随机字符串,这里将构造一个字符集,从中将使用 rand/math 包在控制台上打印随机字符串。

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

//create character set
const set = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

func main() {
	rand.Seed(time.Now().UnixNano())
	fmt.Println("The character set given here is:", set)
	length := 20
	output := make([]byte, length)
	for i := range output {
		output[i] = set[rand.Intn(len(set))] //random characters generated from the above set
	}
	fmt.Println("The set of random characters is:")
	fmt.Println(string(output))  //print the output after converting it to string
}

输出

The character set given here is: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
The set of random characters is:
nV6EakoP6yBy8qtCwuvC

示例 2

在这个例子中,我们将看到如何使用 crypto/rand 包创建随机字符串。输出将是在控制台上生成的随机字符串,并使用 Go 语言中的 print 语句打印。

package main
import (
	"crypto/rand"
	"fmt"
)

func main() {
	length := 10
	output := make([]byte, length)  //create output slice of bytes
	_, err := rand.Read(output) //function reads the error
	if err != nil {
		fmt.Println(err)  //print the error 
		return
	}
   fmt.Println("The set of random characters is:")
	fmt.Println(string(output)) //print random characters
}

输出

The set of random characters is:
6

结论

我们使用两个例子执行了生成随机字符串的程序。在第一个例子中,我们使用 math/rand 包和一个字符集,在第二个例子中,我们使用 crypto/rand 包生成随机字符串。这两个程序都给出了类似的输出。

更新于:2023年7月19日

浏览量:119

开启你的 职业生涯

完成课程获得认证

开始学习
广告