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 包生成随机字符串。这两个程序都给出了类似的输出。